mirror of
https://github.com/Leonmmcoset/cleonos.git
synced 2026-04-21 18:44:01 +00:00
Compare commits
28 Commits
863f85ae4f
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e5ff77ccb4 | ||
|
|
46b7bf4fbc | ||
|
|
b0e58bd241 | ||
|
|
b5c8b64e27 | ||
|
|
d889ca93b9 | ||
|
|
3eba641be3 | ||
|
|
7148243992 | ||
|
|
316545e74b | ||
|
|
a25362d3d4 | ||
|
|
5c7d66e3a6 | ||
|
|
ad77805f7f | ||
|
|
de119e1be6 | ||
|
|
201c5531eb | ||
|
|
14293c9ca0 | ||
|
|
cc6faf787a | ||
|
|
73728ebd91 | ||
|
|
80f4327e79 | ||
|
|
11d87f16a5 | ||
|
|
27a51a0986 | ||
|
|
16855e4b98 | ||
|
|
dbd88505e6 | ||
|
|
d7e1cb62ee | ||
|
|
98897031e8 | ||
|
|
315b230dc4 | ||
|
|
a4f2c8eb89 | ||
|
|
1a3510d8d9 | ||
|
|
c21c5b327e | ||
|
|
739be1d7f7 |
@@ -1,180 +0,0 @@
|
||||
# Details
|
||||
|
||||
Date : 2026-04-14 20:12:49
|
||||
|
||||
Directory d:\\Projects\\C\\cleonos
|
||||
|
||||
Total : 165 files, 13838 codes, 10 comments, 3547 blanks, all 17395 lines
|
||||
|
||||
[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
|
||||
|
||||
## Files
|
||||
| filename | language | code | comment | blank | total |
|
||||
| :--- | :--- | ---: | ---: | ---: | ---: |
|
||||
| [CMakeLists.txt](/CMakeLists.txt) | CMake | 579 | 0 | 84 | 663 |
|
||||
| [Makefile](/Makefile) | Makefile | 100 | 0 | 22 | 122 |
|
||||
| [cleonos/c/apps/ansi\_main.c](/cleonos/c/apps/ansi_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/append\_main.c](/cleonos/c/apps/append_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/cat\_main.c](/cleonos/c/apps/cat_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/cd\_main.c](/cleonos/c/apps/cd_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/clear\_main.c](/cleonos/c/apps/clear_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/cp\_main.c](/cleonos/c/apps/cp_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/dmesg\_main.c](/cleonos/c/apps/dmesg_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/elfrunner\_kmain.c](/cleonos/c/apps/elfrunner_kmain.c) | C | 6 | 0 | 3 | 9 |
|
||||
| [cleonos/c/apps/elfrunner\_main.c](/cleonos/c/apps/elfrunner_main.c) | C | 6 | 0 | 3 | 9 |
|
||||
| [cleonos/c/apps/exec\_main.c](/cleonos/c/apps/exec_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/exit\_main.c](/cleonos/c/apps/exit_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/fsstat\_main.c](/cleonos/c/apps/fsstat_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/hello\_main.c](/cleonos/c/apps/hello_main.c) | C | 6 | 0 | 2 | 8 |
|
||||
| [cleonos/c/apps/help\_main.c](/cleonos/c/apps/help_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/kbdstat\_main.c](/cleonos/c/apps/kbdstat_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/ls\_main.c](/cleonos/c/apps/ls_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/memc\_kmain.c](/cleonos/c/apps/memc_kmain.c) | C | 6 | 0 | 3 | 9 |
|
||||
| [cleonos/c/apps/memc\_main.c](/cleonos/c/apps/memc_main.c) | C | 8 | 0 | 3 | 11 |
|
||||
| [cleonos/c/apps/memstat\_main.c](/cleonos/c/apps/memstat_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/mkdir\_main.c](/cleonos/c/apps/mkdir_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/mv\_main.c](/cleonos/c/apps/mv_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/pid\_main.c](/cleonos/c/apps/pid_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/pwd\_main.c](/cleonos/c/apps/pwd_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/restart\_main.c](/cleonos/c/apps/restart_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/rm\_main.c](/cleonos/c/apps/rm_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/shell/shell\_cmd.c](/cleonos/c/apps/shell/shell_cmd.c) | C | 776 | 0 | 182 | 958 |
|
||||
| [cleonos/c/apps/shell/shell\_external.c](/cleonos/c/apps/shell/shell_external.c) | C | 223 | 0 | 75 | 298 |
|
||||
| [cleonos/c/apps/shell/shell\_input.c](/cleonos/c/apps/shell/shell_input.c) | C | 255 | 0 | 68 | 323 |
|
||||
| [cleonos/c/apps/shell/shell\_internal.h](/cleonos/c/apps/shell/shell_internal.h) | C++ | 84 | 0 | 19 | 103 |
|
||||
| [cleonos/c/apps/shell/shell\_path.c](/cleonos/c/apps/shell/shell_path.c) | C | 153 | 0 | 50 | 203 |
|
||||
| [cleonos/c/apps/shell/shell\_script.c](/cleonos/c/apps/shell/shell_script.c) | C | 35 | 0 | 12 | 47 |
|
||||
| [cleonos/c/apps/shell/shell\_util.c](/cleonos/c/apps/shell/shell_util.c) | C | 211 | 0 | 66 | 277 |
|
||||
| [cleonos/c/apps/shell\_main.c](/cleonos/c/apps/shell_main.c) | C | 19 | 0 | 6 | 25 |
|
||||
| [cleonos/c/apps/shstat\_main.c](/cleonos/c/apps/shstat_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/shutdown\_main.c](/cleonos/c/apps/shutdown_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/sleep\_main.c](/cleonos/c/apps/sleep_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/spawn\_main.c](/cleonos/c/apps/spawn_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/stats\_main.c](/cleonos/c/apps/stats_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/taskstat\_main.c](/cleonos/c/apps/taskstat_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/touch\_main.c](/cleonos/c/apps/touch_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/tty\_main.c](/cleonos/c/apps/tty_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/ttydrv\_main.c](/cleonos/c/apps/ttydrv_main.c) | C | 6 | 0 | 3 | 9 |
|
||||
| [cleonos/c/apps/userstat\_main.c](/cleonos/c/apps/userstat_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/wait\_main.c](/cleonos/c/apps/wait_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/write\_main.c](/cleonos/c/apps/write_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/yield\_main.c](/cleonos/c/apps/yield_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/include/cleonos\_rust\_bridge.h](/cleonos/c/include/cleonos_rust_bridge.h) | C++ | 6 | 0 | 4 | 10 |
|
||||
| [cleonos/c/include/cleonos\_syscall.h](/cleonos/c/include/cleonos_syscall.h) | C++ | 102 | 0 | 6 | 108 |
|
||||
| [cleonos/c/src/runtime.c](/cleonos/c/src/runtime.c) | C | 8 | 0 | 5 | 13 |
|
||||
| [cleonos/c/src/syscall.c](/cleonos/c/src/syscall.c) | C | 152 | 0 | 50 | 202 |
|
||||
| [cleonos/c/stub.c](/cleonos/c/stub.c) | C | 3 | 4 | 2 | 9 |
|
||||
| [cleonos/rust/src/lib.rs](/cleonos/rust/src/lib.rs) | Rust | 23 | 0 | 9 | 32 |
|
||||
| [clks/arch/aarch64/boot.c](/clks/arch/aarch64/boot.c) | C | 6 | 0 | 1 | 7 |
|
||||
| [clks/arch/x86\_64/boot.c](/clks/arch/x86_64/boot.c) | C | 6 | 0 | 1 | 7 |
|
||||
| [clks/arch/x86\_64/exec\_stack\_call.S](/clks/arch/x86_64/exec_stack_call.S) | Go Assembly | 14 | 0 | 6 | 20 |
|
||||
| [clks/arch/x86\_64/interrupt\_stubs.S](/clks/arch/x86_64/interrupt_stubs.S) | Go Assembly | 108 | 0 | 12 | 120 |
|
||||
| [clks/drivers/serial/serial.c](/clks/drivers/serial/serial.c) | C | 52 | 0 | 16 | 68 |
|
||||
| [clks/drivers/video/font8x8.c](/clks/drivers/video/font8x8.c) | C | 67 | 0 | 8 | 75 |
|
||||
| [clks/drivers/video/font8x8.h](/clks/drivers/video/font8x8.h) | C++ | 5 | 0 | 3 | 8 |
|
||||
| [clks/drivers/video/framebuffer.c](/clks/drivers/video/framebuffer.c) | C | 230 | 0 | 64 | 294 |
|
||||
| [clks/drivers/video/psf\_font.c](/clks/drivers/video/psf_font.c) | C | 230 | 0 | 56 | 286 |
|
||||
| [clks/drivers/video/psf\_font.h](/clks/drivers/video/psf_font.h) | C++ | 15 | 0 | 5 | 20 |
|
||||
| [clks/include/clks/boot.h](/clks/include/clks/boot.h) | C++ | 11 | 0 | 4 | 15 |
|
||||
| [clks/include/clks/compiler.h](/clks/include/clks/compiler.h) | C++ | 13 | 0 | 4 | 17 |
|
||||
| [clks/include/clks/cpu.h](/clks/include/clks/cpu.h) | C++ | 20 | 0 | 4 | 24 |
|
||||
| [clks/include/clks/desktop.h](/clks/include/clks/desktop.h) | C++ | 7 | 0 | 4 | 11 |
|
||||
| [clks/include/clks/driver.h](/clks/include/clks/driver.h) | C++ | 28 | 0 | 8 | 36 |
|
||||
| [clks/include/clks/elf64.h](/clks/include/clks/elf64.h) | C++ | 32 | 0 | 9 | 41 |
|
||||
| [clks/include/clks/elfrunner.h](/clks/include/clks/elfrunner.h) | C++ | 6 | 0 | 3 | 9 |
|
||||
| [clks/include/clks/exec.h](/clks/include/clks/exec.h) | C++ | 18 | 0 | 4 | 22 |
|
||||
| [clks/include/clks/framebuffer.h](/clks/include/clks/framebuffer.h) | C++ | 23 | 0 | 5 | 28 |
|
||||
| [clks/include/clks/fs.h](/clks/include/clks/fs.h) | C++ | 23 | 0 | 7 | 30 |
|
||||
| [clks/include/clks/heap.h](/clks/include/clks/heap.h) | C++ | 15 | 0 | 4 | 19 |
|
||||
| [clks/include/clks/interrupts.h](/clks/include/clks/interrupts.h) | C++ | 6 | 0 | 3 | 9 |
|
||||
| [clks/include/clks/kelf.h](/clks/include/clks/kelf.h) | C++ | 9 | 0 | 5 | 14 |
|
||||
| [clks/include/clks/kernel.h](/clks/include/clks/kernel.h) | C++ | 4 | 0 | 2 | 6 |
|
||||
| [clks/include/clks/keyboard.h](/clks/include/clks/keyboard.h) | C++ | 20 | 0 | 5 | 25 |
|
||||
| [clks/include/clks/limine.h](/clks/include/clks/limine.h) | C++ | 132 | 0 | 24 | 156 |
|
||||
| [clks/include/clks/log.h](/clks/include/clks/log.h) | C++ | 14 | 0 | 5 | 19 |
|
||||
| [clks/include/clks/mouse.h](/clks/include/clks/mouse.h) | C++ | 20 | 0 | 6 | 26 |
|
||||
| [clks/include/clks/panic.h](/clks/include/clks/panic.h) | C++ | 7 | 0 | 3 | 10 |
|
||||
| [clks/include/clks/pmm.h](/clks/include/clks/pmm.h) | C++ | 16 | 0 | 5 | 21 |
|
||||
| [clks/include/clks/ramdisk.h](/clks/include/clks/ramdisk.h) | C++ | 17 | 0 | 8 | 25 |
|
||||
| [clks/include/clks/scheduler.h](/clks/include/clks/scheduler.h) | C++ | 18 | 0 | 5 | 23 |
|
||||
| [clks/include/clks/serial.h](/clks/include/clks/serial.h) | C++ | 6 | 0 | 2 | 8 |
|
||||
| [clks/include/clks/service.h](/clks/include/clks/service.h) | C++ | 31 | 0 | 8 | 39 |
|
||||
| [clks/include/clks/shell.h](/clks/include/clks/shell.h) | C++ | 7 | 0 | 3 | 10 |
|
||||
| [clks/include/clks/string.h](/clks/include/clks/string.h) | C++ | 9 | 0 | 3 | 12 |
|
||||
| [clks/include/clks/syscall.h](/clks/include/clks/syscall.h) | C++ | 55 | 0 | 4 | 59 |
|
||||
| [clks/include/clks/task.h](/clks/include/clks/task.h) | C++ | 24 | 0 | 7 | 31 |
|
||||
| [clks/include/clks/tty.h](/clks/include/clks/tty.h) | C++ | 14 | 0 | 4 | 18 |
|
||||
| [clks/include/clks/types.h](/clks/include/clks/types.h) | C++ | 17 | 0 | 6 | 23 |
|
||||
| [clks/include/clks/userland.h](/clks/include/clks/userland.h) | C++ | 12 | 0 | 4 | 16 |
|
||||
| [clks/kernel/desktop.c](/clks/kernel/desktop.c) | C | 321 | 0 | 86 | 407 |
|
||||
| [clks/kernel/driver.c](/clks/kernel/driver.c) | C | 163 | 0 | 48 | 211 |
|
||||
| [clks/kernel/elf64.c](/clks/kernel/elf64.c) | C | 239 | 0 | 73 | 312 |
|
||||
| [clks/kernel/elfrunner.c](/clks/kernel/elfrunner.c) | C | 30 | 0 | 8 | 38 |
|
||||
| [clks/kernel/exec.c](/clks/kernel/exec.c) | C | 555 | 0 | 166 | 721 |
|
||||
| [clks/kernel/fs.c](/clks/kernel/fs.c) | C | 698 | 0 | 220 | 918 |
|
||||
| [clks/kernel/heap.c](/clks/kernel/heap.c) | C | 134 | 0 | 42 | 176 |
|
||||
| [clks/kernel/interrupts.c](/clks/kernel/interrupts.c) | C | 302 | 0 | 43 | 345 |
|
||||
| [clks/kernel/kelf.c](/clks/kernel/kelf.c) | C | 203 | 1 | 53 | 257 |
|
||||
| [clks/kernel/keyboard.c](/clks/kernel/keyboard.c) | C | 259 | 0 | 64 | 323 |
|
||||
| [clks/kernel/kmain.c](/clks/kernel/kmain.c) | C | 198 | 1 | 52 | 251 |
|
||||
| [clks/kernel/limine\_requests.c](/clks/kernel/limine_requests.c) | C | 76 | 0 | 26 | 102 |
|
||||
| [clks/kernel/log.c](/clks/kernel/log.c) | C | 123 | 0 | 33 | 156 |
|
||||
| [clks/kernel/mouse.c](/clks/kernel/mouse.c) | C | 246 | 0 | 63 | 309 |
|
||||
| [clks/kernel/panic.c](/clks/kernel/panic.c) | C | 179 | 0 | 60 | 239 |
|
||||
| [clks/kernel/pmm.c](/clks/kernel/pmm.c) | C | 82 | 0 | 23 | 105 |
|
||||
| [clks/kernel/ramdisk.c](/clks/kernel/ramdisk.c) | C | 172 | 0 | 50 | 222 |
|
||||
| [clks/kernel/scheduler.c](/clks/kernel/scheduler.c) | C | 136 | 0 | 44 | 180 |
|
||||
| [clks/kernel/service.c](/clks/kernel/service.c) | C | 113 | 0 | 34 | 147 |
|
||||
| [clks/kernel/shell.c](/clks/kernel/shell.c) | C | 1,249 | 0 | 317 | 1,566 |
|
||||
| [clks/kernel/syscall.c](/clks/kernel/syscall.c) | C | 492 | 0 | 110 | 602 |
|
||||
| [clks/kernel/tty.c](/clks/kernel/tty.c) | C | 629 | 0 | 167 | 796 |
|
||||
| [clks/kernel/userland.c](/clks/kernel/userland.c) | C | 124 | 0 | 35 | 159 |
|
||||
| [clks/lib/libc\_compat.c](/clks/lib/libc_compat.c) | C | 25 | 0 | 7 | 32 |
|
||||
| [clks/lib/string.c](/clks/lib/string.c) | C | 54 | 0 | 16 | 70 |
|
||||
| [clks/rust/src/lib.rs](/clks/rust/src/lib.rs) | Rust | 21 | 0 | 6 | 27 |
|
||||
| [cmake/check\_tools.cmake](/cmake/check_tools.cmake) | CMake | 32 | 0 | 6 | 38 |
|
||||
| [cmake/log.cmake](/cmake/log.cmake) | CMake | 30 | 0 | 6 | 36 |
|
||||
| [cmake/log\_emit.cmake](/cmake/log_emit.cmake) | CMake | 23 | 0 | 6 | 29 |
|
||||
| [cmake/setup\_limine.cmake](/cmake/setup_limine.cmake) | CMake | 100 | 0 | 18 | 118 |
|
||||
| [configs/limine.conf](/configs/limine.conf) | Properties | 6 | 0 | 1 | 7 |
|
||||
| [docs/README.md](/docs/README.md) | Markdown | 31 | 0 | 4 | 35 |
|
||||
| [docs/stage1.md](/docs/stage1.md) | Markdown | 41 | 0 | 5 | 46 |
|
||||
| [docs/stage10.md](/docs/stage10.md) | Markdown | 34 | 0 | 6 | 40 |
|
||||
| [docs/stage11.md](/docs/stage11.md) | Markdown | 36 | 0 | 5 | 41 |
|
||||
| [docs/stage12.md](/docs/stage12.md) | Markdown | 40 | 0 | 6 | 46 |
|
||||
| [docs/stage13.md](/docs/stage13.md) | Markdown | 34 | 0 | 6 | 40 |
|
||||
| [docs/stage14.md](/docs/stage14.md) | Markdown | 44 | 0 | 8 | 52 |
|
||||
| [docs/stage15.md](/docs/stage15.md) | Markdown | 47 | 0 | 7 | 54 |
|
||||
| [docs/stage2.md](/docs/stage2.md) | Markdown | 30 | 0 | 5 | 35 |
|
||||
| [docs/stage20.md](/docs/stage20.md) | Markdown | 46 | 0 | 6 | 52 |
|
||||
| [docs/stage21.md](/docs/stage21.md) | Markdown | 72 | 0 | 7 | 79 |
|
||||
| [docs/stage22.md](/docs/stage22.md) | Markdown | 68 | 0 | 7 | 75 |
|
||||
| [docs/stage23.md](/docs/stage23.md) | Markdown | 41 | 0 | 6 | 47 |
|
||||
| [docs/stage24.md](/docs/stage24.md) | Markdown | 42 | 0 | 7 | 49 |
|
||||
| [docs/stage25.md](/docs/stage25.md) | Markdown | 58 | 0 | 7 | 65 |
|
||||
| [docs/stage26.md](/docs/stage26.md) | Markdown | 32 | 0 | 7 | 39 |
|
||||
| [docs/stage27.md](/docs/stage27.md) | Markdown | 28 | 0 | 7 | 35 |
|
||||
| [docs/stage28.md](/docs/stage28.md) | Markdown | 37 | 0 | 7 | 44 |
|
||||
| [docs/stage29.md](/docs/stage29.md) | Markdown | 33 | 0 | 7 | 40 |
|
||||
| [docs/stage3.md](/docs/stage3.md) | Markdown | 29 | 0 | 5 | 34 |
|
||||
| [docs/stage4.md](/docs/stage4.md) | Markdown | 30 | 0 | 5 | 35 |
|
||||
| [docs/stage5.md](/docs/stage5.md) | Markdown | 29 | 0 | 5 | 34 |
|
||||
| [docs/stage6.md](/docs/stage6.md) | Markdown | 30 | 0 | 6 | 36 |
|
||||
| [docs/stage7.md](/docs/stage7.md) | Markdown | 34 | 0 | 6 | 40 |
|
||||
| [docs/stage8.md](/docs/stage8.md) | Markdown | 31 | 0 | 6 | 37 |
|
||||
| [docs/stage9.md](/docs/stage9.md) | Markdown | 31 | 0 | 6 | 37 |
|
||||
| [docs/syscall.md](/docs/syscall.md) | Markdown | 251 | 0 | 124 | 375 |
|
||||
| [ramdisk/shell/init.cmd](/ramdisk/shell/init.cmd) | Batch | 4 | 0 | 2 | 6 |
|
||||
| [scripts/gen-tty-psf.ps1](/scripts/gen-tty-psf.ps1) | PowerShell | 171 | 2 | 42 | 215 |
|
||||
| [wine/README.md](/wine/README.md) | Markdown | 37 | 0 | 14 | 51 |
|
||||
| [wine/cleonos\_wine.py](/wine/cleonos_wine.py) | Python | 3 | 1 | 3 | 7 |
|
||||
| [wine/cleonos\_wine\_lib/\_\_init\_\_.py](/wine/cleonos_wine_lib/__init__.py) | Python | 4 | 0 | 1 | 5 |
|
||||
| [wine/cleonos\_wine\_lib/cli.py](/wine/cleonos_wine_lib/cli.py) | Python | 44 | 0 | 10 | 54 |
|
||||
| [wine/cleonos\_wine\_lib/constants.py](/wine/cleonos_wine_lib/constants.py) | Python | 63 | 1 | 10 | 74 |
|
||||
| [wine/cleonos\_wine\_lib/input\_pump.py](/wine/cleonos_wine_lib/input_pump.py) | Python | 82 | 0 | 17 | 99 |
|
||||
| [wine/cleonos\_wine\_lib/platform.py](/wine/cleonos_wine_lib/platform.py) | Python | 37 | 0 | 4 | 41 |
|
||||
| [wine/cleonos\_wine\_lib/runner.py](/wine/cleonos_wine_lib/runner.py) | Python | 753 | 0 | 137 | 890 |
|
||||
| [wine/cleonos\_wine\_lib/state.py](/wine/cleonos_wine_lib/state.py) | Python | 104 | 0 | 27 | 131 |
|
||||
| [wine/requirements.txt](/wine/requirements.txt) | pip requirements | 1 | 0 | 1 | 2 |
|
||||
|
||||
[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
|
||||
@@ -1,113 +0,0 @@
|
||||
# Diff Details
|
||||
|
||||
Date : 2026-04-14 20:12:49
|
||||
|
||||
Directory d:\\Projects\\C\\cleonos
|
||||
|
||||
Total : 98 files, 6203 codes, 2 comments, 1653 blanks, all 7858 lines
|
||||
|
||||
[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details
|
||||
|
||||
## Files
|
||||
| filename | language | code | comment | blank | total |
|
||||
| :--- | :--- | ---: | ---: | ---: | ---: |
|
||||
| [CMakeLists.txt](/CMakeLists.txt) | CMake | 44 | 0 | 9 | 53 |
|
||||
| [cleonos/c/apps/ansi\_main.c](/cleonos/c/apps/ansi_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/append\_main.c](/cleonos/c/apps/append_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/cat\_main.c](/cleonos/c/apps/cat_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/cd\_main.c](/cleonos/c/apps/cd_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/clear\_main.c](/cleonos/c/apps/clear_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/cp\_main.c](/cleonos/c/apps/cp_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/dmesg\_main.c](/cleonos/c/apps/dmesg_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/exec\_main.c](/cleonos/c/apps/exec_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/exit\_main.c](/cleonos/c/apps/exit_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/fsstat\_main.c](/cleonos/c/apps/fsstat_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/hello\_main.c](/cleonos/c/apps/hello_main.c) | C | 6 | 0 | 2 | 8 |
|
||||
| [cleonos/c/apps/help\_main.c](/cleonos/c/apps/help_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/kbdstat\_main.c](/cleonos/c/apps/kbdstat_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/ls\_main.c](/cleonos/c/apps/ls_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/memstat\_main.c](/cleonos/c/apps/memstat_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/mkdir\_main.c](/cleonos/c/apps/mkdir_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/mv\_main.c](/cleonos/c/apps/mv_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/pid\_main.c](/cleonos/c/apps/pid_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/pwd\_main.c](/cleonos/c/apps/pwd_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/restart\_main.c](/cleonos/c/apps/restart_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/rm\_main.c](/cleonos/c/apps/rm_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/shell/shell\_cmd.c](/cleonos/c/apps/shell/shell_cmd.c) | C | 776 | 0 | 182 | 958 |
|
||||
| [cleonos/c/apps/shell/shell\_external.c](/cleonos/c/apps/shell/shell_external.c) | C | 223 | 0 | 75 | 298 |
|
||||
| [cleonos/c/apps/shell/shell\_input.c](/cleonos/c/apps/shell/shell_input.c) | C | 255 | 0 | 68 | 323 |
|
||||
| [cleonos/c/apps/shell/shell\_internal.h](/cleonos/c/apps/shell/shell_internal.h) | C++ | 84 | 0 | 19 | 103 |
|
||||
| [cleonos/c/apps/shell/shell\_path.c](/cleonos/c/apps/shell/shell_path.c) | C | 153 | 0 | 50 | 203 |
|
||||
| [cleonos/c/apps/shell/shell\_script.c](/cleonos/c/apps/shell/shell_script.c) | C | 35 | 0 | 12 | 47 |
|
||||
| [cleonos/c/apps/shell/shell\_util.c](/cleonos/c/apps/shell/shell_util.c) | C | 211 | 0 | 66 | 277 |
|
||||
| [cleonos/c/apps/shell\_main.c](/cleonos/c/apps/shell_main.c) | C | -377 | 0 | -118 | -495 |
|
||||
| [cleonos/c/apps/shstat\_main.c](/cleonos/c/apps/shstat_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/shutdown\_main.c](/cleonos/c/apps/shutdown_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/sleep\_main.c](/cleonos/c/apps/sleep_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/spawn\_main.c](/cleonos/c/apps/spawn_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/stats\_main.c](/cleonos/c/apps/stats_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/taskstat\_main.c](/cleonos/c/apps/taskstat_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/touch\_main.c](/cleonos/c/apps/touch_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/tty\_main.c](/cleonos/c/apps/tty_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/userstat\_main.c](/cleonos/c/apps/userstat_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/wait\_main.c](/cleonos/c/apps/wait_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/write\_main.c](/cleonos/c/apps/write_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/apps/yield\_main.c](/cleonos/c/apps/yield_main.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/include/cleonos\_syscall.h](/cleonos/c/include/cleonos_syscall.h) | C++ | 42 | 0 | 1 | 43 |
|
||||
| [cleonos/c/src/runtime.c](/cleonos/c/src/runtime.c) | C | -3 | 0 | -1 | -4 |
|
||||
| [cleonos/c/src/syscall.c](/cleonos/c/src/syscall.c) | C | 63 | 0 | 21 | 84 |
|
||||
| [clks/arch/x86\_64/exec\_stack\_call.S](/clks/arch/x86_64/exec_stack_call.S) | Go Assembly | 14 | 0 | 6 | 20 |
|
||||
| [clks/drivers/video/framebuffer.c](/clks/drivers/video/framebuffer.c) | C | 68 | 0 | 22 | 90 |
|
||||
| [clks/drivers/video/psf\_font.c](/clks/drivers/video/psf_font.c) | C | 71 | 0 | 21 | 92 |
|
||||
| [clks/drivers/video/psf\_font.h](/clks/drivers/video/psf_font.h) | C++ | 1 | 0 | 1 | 2 |
|
||||
| [clks/include/clks/desktop.h](/clks/include/clks/desktop.h) | C++ | 7 | 0 | 4 | 11 |
|
||||
| [clks/include/clks/elf64.h](/clks/include/clks/elf64.h) | C++ | 5 | 0 | 1 | 6 |
|
||||
| [clks/include/clks/exec.h](/clks/include/clks/exec.h) | C++ | 10 | 0 | 1 | 11 |
|
||||
| [clks/include/clks/framebuffer.h](/clks/include/clks/framebuffer.h) | C++ | 3 | 0 | 1 | 4 |
|
||||
| [clks/include/clks/keyboard.h](/clks/include/clks/keyboard.h) | C++ | 1 | 0 | 0 | 1 |
|
||||
| [clks/include/clks/log.h](/clks/include/clks/log.h) | C++ | 2 | 0 | 1 | 3 |
|
||||
| [clks/include/clks/mouse.h](/clks/include/clks/mouse.h) | C++ | 20 | 0 | 6 | 26 |
|
||||
| [clks/include/clks/panic.h](/clks/include/clks/panic.h) | C++ | 7 | 0 | 3 | 10 |
|
||||
| [clks/include/clks/syscall.h](/clks/include/clks/syscall.h) | C++ | 21 | 0 | 0 | 21 |
|
||||
| [clks/include/clks/tty.h](/clks/include/clks/tty.h) | C++ | 2 | 0 | -1 | 1 |
|
||||
| [clks/include/clks/userland.h](/clks/include/clks/userland.h) | C++ | 1 | 0 | 0 | 1 |
|
||||
| [clks/kernel/desktop.c](/clks/kernel/desktop.c) | C | 321 | 0 | 86 | 407 |
|
||||
| [clks/kernel/elf64.c](/clks/kernel/elf64.c) | C | 69 | 0 | 21 | 90 |
|
||||
| [clks/kernel/exec.c](/clks/kernel/exec.c) | C | 504 | 0 | 151 | 655 |
|
||||
| [clks/kernel/interrupts.c](/clks/kernel/interrupts.c) | C | 4 | 0 | 0 | 4 |
|
||||
| [clks/kernel/keyboard.c](/clks/kernel/keyboard.c) | C | 60 | 0 | 22 | 82 |
|
||||
| [clks/kernel/kmain.c](/clks/kernel/kmain.c) | C | 18 | 0 | 2 | 20 |
|
||||
| [clks/kernel/log.c](/clks/kernel/log.c) | C | 44 | 0 | 16 | 60 |
|
||||
| [clks/kernel/mouse.c](/clks/kernel/mouse.c) | C | 246 | 0 | 63 | 309 |
|
||||
| [clks/kernel/panic.c](/clks/kernel/panic.c) | C | 179 | 0 | 60 | 239 |
|
||||
| [clks/kernel/scheduler.c](/clks/kernel/scheduler.c) | C | 9 | 0 | 2 | 11 |
|
||||
| [clks/kernel/shell.c](/clks/kernel/shell.c) | C | 389 | 0 | 87 | 476 |
|
||||
| [clks/kernel/syscall.c](/clks/kernel/syscall.c) | C | 249 | 0 | 60 | 309 |
|
||||
| [clks/kernel/tty.c](/clks/kernel/tty.c) | C | 354 | 0 | 90 | 444 |
|
||||
| [clks/kernel/userland.c](/clks/kernel/userland.c) | C | 11 | 0 | 3 | 14 |
|
||||
| [clks/lib/libc\_compat.c](/clks/lib/libc_compat.c) | C | 25 | 0 | 7 | 32 |
|
||||
| [clks/rust/src/lib.rs](/clks/rust/src/lib.rs) | Rust | 21 | 0 | 6 | 27 |
|
||||
| [docs/README.md](/docs/README.md) | Markdown | 9 | 0 | 2 | 11 |
|
||||
| [docs/stage22.md](/docs/stage22.md) | Markdown | 68 | 0 | 7 | 75 |
|
||||
| [docs/stage23.md](/docs/stage23.md) | Markdown | 41 | 0 | 6 | 47 |
|
||||
| [docs/stage24.md](/docs/stage24.md) | Markdown | 42 | 0 | 7 | 49 |
|
||||
| [docs/stage25.md](/docs/stage25.md) | Markdown | 58 | 0 | 7 | 65 |
|
||||
| [docs/stage26.md](/docs/stage26.md) | Markdown | 32 | 0 | 7 | 39 |
|
||||
| [docs/stage27.md](/docs/stage27.md) | Markdown | 28 | 0 | 7 | 35 |
|
||||
| [docs/stage28.md](/docs/stage28.md) | Markdown | 37 | 0 | 7 | 44 |
|
||||
| [docs/stage29.md](/docs/stage29.md) | Markdown | 33 | 0 | 7 | 40 |
|
||||
| [docs/syscall.md](/docs/syscall.md) | Markdown | 251 | 0 | 124 | 375 |
|
||||
| [ramdisk/shell/init.cmd](/ramdisk/shell/init.cmd) | Batch | -7 | 0 | 0 | -7 |
|
||||
| [scripts/gen-tty-psf.ps1](/scripts/gen-tty-psf.ps1) | PowerShell | 107 | 0 | 24 | 131 |
|
||||
| [wine/README.md](/wine/README.md) | Markdown | 37 | 0 | 14 | 51 |
|
||||
| [wine/cleonos\_wine.py](/wine/cleonos_wine.py) | Python | 3 | 1 | 3 | 7 |
|
||||
| [wine/cleonos\_wine\_lib/\_\_init\_\_.py](/wine/cleonos_wine_lib/__init__.py) | Python | 4 | 0 | 1 | 5 |
|
||||
| [wine/cleonos\_wine\_lib/cli.py](/wine/cleonos_wine_lib/cli.py) | Python | 44 | 0 | 10 | 54 |
|
||||
| [wine/cleonos\_wine\_lib/constants.py](/wine/cleonos_wine_lib/constants.py) | Python | 63 | 1 | 10 | 74 |
|
||||
| [wine/cleonos\_wine\_lib/input\_pump.py](/wine/cleonos_wine_lib/input_pump.py) | Python | 82 | 0 | 17 | 99 |
|
||||
| [wine/cleonos\_wine\_lib/platform.py](/wine/cleonos_wine_lib/platform.py) | Python | 37 | 0 | 4 | 41 |
|
||||
| [wine/cleonos\_wine\_lib/runner.py](/wine/cleonos_wine_lib/runner.py) | Python | 753 | 0 | 137 | 890 |
|
||||
| [wine/cleonos\_wine\_lib/state.py](/wine/cleonos_wine_lib/state.py) | Python | 104 | 0 | 27 | 131 |
|
||||
| [wine/requirements.txt](/wine/requirements.txt) | pip requirements | 1 | 0 | 1 | 2 |
|
||||
|
||||
[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details
|
||||
@@ -1,100 +0,0 @@
|
||||
"filename", "language", "pip requirements", "Python", "CMake", "Markdown", "Batch", "Rust", "C", "C++", "PowerShell", "Go Assembly", "comment", "blank", "total"
|
||||
"d:\Projects\C\cleonos\CMakeLists.txt", "CMake", 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 9, 53
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\ansi_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\append_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cat_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cd_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\clear_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cp_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\dmesg_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\exec_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\exit_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\fsstat_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\hello_main.c", "C", 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 2, 8
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\help_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\kbdstat_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\ls_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\memstat_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\mkdir_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\mv_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\pid_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\pwd_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\restart_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\rm_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_cmd.c", "C", 0, 0, 0, 0, 0, 0, 776, 0, 0, 0, 0, 182, 958
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_external.c", "C", 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 75, 298
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_input.c", "C", 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 68, 323
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_internal.h", "C++", 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 19, 103
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_path.c", "C", 0, 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 50, 203
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_script.c", "C", 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 12, 47
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_util.c", "C", 0, 0, 0, 0, 0, 0, 211, 0, 0, 0, 0, 66, 277
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell_main.c", "C", 0, 0, 0, 0, 0, 0, -377, 0, 0, 0, 0, -118, -495
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shstat_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shutdown_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\sleep_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\spawn_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\stats_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\taskstat_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\touch_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\tty_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\userstat_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\wait_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\write_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\yield_main.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\include\cleonos_syscall.h", "C++", 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 1, 43
|
||||
"d:\Projects\C\cleonos\cleonos\c\src\runtime.c", "C", 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, -1, -4
|
||||
"d:\Projects\C\cleonos\cleonos\c\src\syscall.c", "C", 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 21, 84
|
||||
"d:\Projects\C\cleonos\clks\arch\x86_64\exec_stack_call.S", "Go Assembly", 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 6, 20
|
||||
"d:\Projects\C\cleonos\clks\drivers\video\framebuffer.c", "C", 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 22, 90
|
||||
"d:\Projects\C\cleonos\clks\drivers\video\psf_font.c", "C", 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 21, 92
|
||||
"d:\Projects\C\cleonos\clks\drivers\video\psf_font.h", "C++", 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 2
|
||||
"d:\Projects\C\cleonos\clks\include\clks\desktop.h", "C++", 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 4, 11
|
||||
"d:\Projects\C\cleonos\clks\include\clks\elf64.h", "C++", 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 6
|
||||
"d:\Projects\C\cleonos\clks\include\clks\exec.h", "C++", 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 1, 11
|
||||
"d:\Projects\C\cleonos\clks\include\clks\framebuffer.h", "C++", 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 4
|
||||
"d:\Projects\C\cleonos\clks\include\clks\keyboard.h", "C++", 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1
|
||||
"d:\Projects\C\cleonos\clks\include\clks\log.h", "C++", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 3
|
||||
"d:\Projects\C\cleonos\clks\include\clks\mouse.h", "C++", 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 6, 26
|
||||
"d:\Projects\C\cleonos\clks\include\clks\panic.h", "C++", 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 3, 10
|
||||
"d:\Projects\C\cleonos\clks\include\clks\syscall.h", "C++", 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 21
|
||||
"d:\Projects\C\cleonos\clks\include\clks\tty.h", "C++", 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, -1, 1
|
||||
"d:\Projects\C\cleonos\clks\include\clks\userland.h", "C++", 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1
|
||||
"d:\Projects\C\cleonos\clks\kernel\desktop.c", "C", 0, 0, 0, 0, 0, 0, 321, 0, 0, 0, 0, 86, 407
|
||||
"d:\Projects\C\cleonos\clks\kernel\elf64.c", "C", 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 21, 90
|
||||
"d:\Projects\C\cleonos\clks\kernel\exec.c", "C", 0, 0, 0, 0, 0, 0, 504, 0, 0, 0, 0, 151, 655
|
||||
"d:\Projects\C\cleonos\clks\kernel\interrupts.c", "C", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4
|
||||
"d:\Projects\C\cleonos\clks\kernel\keyboard.c", "C", 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 22, 82
|
||||
"d:\Projects\C\cleonos\clks\kernel\kmain.c", "C", 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 2, 20
|
||||
"d:\Projects\C\cleonos\clks\kernel\log.c", "C", 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 16, 60
|
||||
"d:\Projects\C\cleonos\clks\kernel\mouse.c", "C", 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 63, 309
|
||||
"d:\Projects\C\cleonos\clks\kernel\panic.c", "C", 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 60, 239
|
||||
"d:\Projects\C\cleonos\clks\kernel\scheduler.c", "C", 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 2, 11
|
||||
"d:\Projects\C\cleonos\clks\kernel\shell.c", "C", 0, 0, 0, 0, 0, 0, 389, 0, 0, 0, 0, 87, 476
|
||||
"d:\Projects\C\cleonos\clks\kernel\syscall.c", "C", 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 60, 309
|
||||
"d:\Projects\C\cleonos\clks\kernel\tty.c", "C", 0, 0, 0, 0, 0, 0, 354, 0, 0, 0, 0, 90, 444
|
||||
"d:\Projects\C\cleonos\clks\kernel\userland.c", "C", 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 3, 14
|
||||
"d:\Projects\C\cleonos\clks\lib\libc_compat.c", "C", 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 7, 32
|
||||
"d:\Projects\C\cleonos\clks\rust\src\lib.rs", "Rust", 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 6, 27
|
||||
"d:\Projects\C\cleonos\docs\README.md", "Markdown", 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 2, 11
|
||||
"d:\Projects\C\cleonos\docs\stage22.md", "Markdown", 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 7, 75
|
||||
"d:\Projects\C\cleonos\docs\stage23.md", "Markdown", 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 6, 47
|
||||
"d:\Projects\C\cleonos\docs\stage24.md", "Markdown", 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 7, 49
|
||||
"d:\Projects\C\cleonos\docs\stage25.md", "Markdown", 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 7, 65
|
||||
"d:\Projects\C\cleonos\docs\stage26.md", "Markdown", 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 7, 39
|
||||
"d:\Projects\C\cleonos\docs\stage27.md", "Markdown", 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 7, 35
|
||||
"d:\Projects\C\cleonos\docs\stage28.md", "Markdown", 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 7, 44
|
||||
"d:\Projects\C\cleonos\docs\stage29.md", "Markdown", 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 7, 40
|
||||
"d:\Projects\C\cleonos\docs\syscall.md", "Markdown", 0, 0, 0, 251, 0, 0, 0, 0, 0, 0, 0, 124, 375
|
||||
"d:\Projects\C\cleonos\ramdisk\shell\init.cmd", "Batch", 0, 0, 0, 0, -7, 0, 0, 0, 0, 0, 0, 0, -7
|
||||
"d:\Projects\C\cleonos\scripts\gen-tty-psf.ps1", "PowerShell", 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 24, 131
|
||||
"d:\Projects\C\cleonos\wine\README.md", "Markdown", 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 14, 51
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine.py", "Python", 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 7
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\__init__.py", "Python", 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\cli.py", "Python", 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 54
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\constants.py", "Python", 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10, 74
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\input_pump.py", "Python", 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 99
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\platform.py", "Python", 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 41
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\runner.py", "Python", 0, 753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 137, 890
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\state.py", "Python", 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 131
|
||||
"d:\Projects\C\cleonos\wine\requirements.txt", "pip requirements", 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2
|
||||
"Total", "-", 1, 1090, 44, 636, -7, 21, 4091, 206, 107, 14, 2, 1653, 7858
|
||||
|
@@ -1,56 +0,0 @@
|
||||
# Diff Summary
|
||||
|
||||
Date : 2026-04-14 20:12:49
|
||||
|
||||
Directory d:\\Projects\\C\\cleonos
|
||||
|
||||
Total : 98 files, 6203 codes, 2 comments, 1653 blanks, all 7858 lines
|
||||
|
||||
[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md)
|
||||
|
||||
## Languages
|
||||
| language | files | code | comment | blank | total |
|
||||
| :--- | ---: | ---: | ---: | ---: | ---: |
|
||||
| C | 59 | 4,091 | 0 | 1,166 | 5,257 |
|
||||
| Python | 8 | 1,090 | 2 | 209 | 1,301 |
|
||||
| Markdown | 11 | 636 | 0 | 195 | 831 |
|
||||
| C++ | 14 | 206 | 0 | 37 | 243 |
|
||||
| PowerShell | 1 | 107 | 0 | 24 | 131 |
|
||||
| CMake | 1 | 44 | 0 | 9 | 53 |
|
||||
| Rust | 1 | 21 | 0 | 6 | 27 |
|
||||
| Go Assembly | 1 | 14 | 0 | 6 | 20 |
|
||||
| pip requirements | 1 | 1 | 0 | 1 | 2 |
|
||||
| Batch | 1 | -7 | 0 | 0 | -7 |
|
||||
|
||||
## Directories
|
||||
| path | files | code | comment | blank | total |
|
||||
| :--- | ---: | ---: | ---: | ---: | ---: |
|
||||
| . | 98 | 6,203 | 2 | 1,653 | 7,858 |
|
||||
| . (Files) | 1 | 44 | 0 | 9 | 53 |
|
||||
| cleonos | 44 | 1,596 | 0 | 473 | 2,069 |
|
||||
| cleonos\\c | 44 | 1,596 | 0 | 473 | 2,069 |
|
||||
| cleonos\\c\\apps | 41 | 1,494 | 0 | 452 | 1,946 |
|
||||
| cleonos\\c\\apps (Files) | 34 | -243 | 0 | -20 | -263 |
|
||||
| cleonos\\c\\apps\\shell | 7 | 1,737 | 0 | 472 | 2,209 |
|
||||
| cleonos\\c\\include | 1 | 42 | 0 | 1 | 43 |
|
||||
| cleonos\\c\\src | 2 | 60 | 0 | 20 | 80 |
|
||||
| clks | 31 | 2,736 | 0 | 742 | 3,478 |
|
||||
| clks\\arch | 1 | 14 | 0 | 6 | 20 |
|
||||
| clks\\arch\\x86_64 | 1 | 14 | 0 | 6 | 20 |
|
||||
| clks\\drivers | 3 | 140 | 0 | 44 | 184 |
|
||||
| clks\\drivers\\video | 3 | 140 | 0 | 44 | 184 |
|
||||
| clks\\include | 11 | 79 | 0 | 16 | 95 |
|
||||
| clks\\include\\clks | 11 | 79 | 0 | 16 | 95 |
|
||||
| clks\\kernel | 14 | 2,457 | 0 | 663 | 3,120 |
|
||||
| clks\\lib | 1 | 25 | 0 | 7 | 32 |
|
||||
| clks\\rust | 1 | 21 | 0 | 6 | 27 |
|
||||
| clks\\rust\\src | 1 | 21 | 0 | 6 | 27 |
|
||||
| docs | 10 | 599 | 0 | 181 | 780 |
|
||||
| ramdisk | 1 | -7 | 0 | 0 | -7 |
|
||||
| ramdisk\\shell | 1 | -7 | 0 | 0 | -7 |
|
||||
| scripts | 1 | 107 | 0 | 24 | 131 |
|
||||
| wine | 10 | 1,128 | 2 | 224 | 1,354 |
|
||||
| wine (Files) | 3 | 41 | 1 | 18 | 60 |
|
||||
| wine\\cleonos_wine_lib | 7 | 1,087 | 1 | 206 | 1,294 |
|
||||
|
||||
[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md)
|
||||
@@ -1,157 +0,0 @@
|
||||
Date : 2026-04-14 20:12:49
|
||||
Directory : d:\Projects\C\cleonos
|
||||
Total : 98 files, 6203 codes, 2 comments, 1653 blanks, all 7858 lines
|
||||
|
||||
Languages
|
||||
+------------------+------------+------------+------------+------------+------------+
|
||||
| language | files | code | comment | blank | total |
|
||||
+------------------+------------+------------+------------+------------+------------+
|
||||
| C | 59 | 4,091 | 0 | 1,166 | 5,257 |
|
||||
| Python | 8 | 1,090 | 2 | 209 | 1,301 |
|
||||
| Markdown | 11 | 636 | 0 | 195 | 831 |
|
||||
| C++ | 14 | 206 | 0 | 37 | 243 |
|
||||
| PowerShell | 1 | 107 | 0 | 24 | 131 |
|
||||
| CMake | 1 | 44 | 0 | 9 | 53 |
|
||||
| Rust | 1 | 21 | 0 | 6 | 27 |
|
||||
| Go Assembly | 1 | 14 | 0 | 6 | 20 |
|
||||
| pip requirements | 1 | 1 | 0 | 1 | 2 |
|
||||
| Batch | 1 | -7 | 0 | 0 | -7 |
|
||||
+------------------+------------+------------+------------+------------+------------+
|
||||
|
||||
Directories
|
||||
+-------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||
| path | files | code | comment | blank | total |
|
||||
+-------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||
| . | 98 | 6,203 | 2 | 1,653 | 7,858 |
|
||||
| . (Files) | 1 | 44 | 0 | 9 | 53 |
|
||||
| cleonos | 44 | 1,596 | 0 | 473 | 2,069 |
|
||||
| cleonos\c | 44 | 1,596 | 0 | 473 | 2,069 |
|
||||
| cleonos\c\apps | 41 | 1,494 | 0 | 452 | 1,946 |
|
||||
| cleonos\c\apps (Files) | 34 | -243 | 0 | -20 | -263 |
|
||||
| cleonos\c\apps\shell | 7 | 1,737 | 0 | 472 | 2,209 |
|
||||
| cleonos\c\include | 1 | 42 | 0 | 1 | 43 |
|
||||
| cleonos\c\src | 2 | 60 | 0 | 20 | 80 |
|
||||
| clks | 31 | 2,736 | 0 | 742 | 3,478 |
|
||||
| clks\arch | 1 | 14 | 0 | 6 | 20 |
|
||||
| clks\arch\x86_64 | 1 | 14 | 0 | 6 | 20 |
|
||||
| clks\drivers | 3 | 140 | 0 | 44 | 184 |
|
||||
| clks\drivers\video | 3 | 140 | 0 | 44 | 184 |
|
||||
| clks\include | 11 | 79 | 0 | 16 | 95 |
|
||||
| clks\include\clks | 11 | 79 | 0 | 16 | 95 |
|
||||
| clks\kernel | 14 | 2,457 | 0 | 663 | 3,120 |
|
||||
| clks\lib | 1 | 25 | 0 | 7 | 32 |
|
||||
| clks\rust | 1 | 21 | 0 | 6 | 27 |
|
||||
| clks\rust\src | 1 | 21 | 0 | 6 | 27 |
|
||||
| docs | 10 | 599 | 0 | 181 | 780 |
|
||||
| ramdisk | 1 | -7 | 0 | 0 | -7 |
|
||||
| ramdisk\shell | 1 | -7 | 0 | 0 | -7 |
|
||||
| scripts | 1 | 107 | 0 | 24 | 131 |
|
||||
| wine | 10 | 1,128 | 2 | 224 | 1,354 |
|
||||
| wine (Files) | 3 | 41 | 1 | 18 | 60 |
|
||||
| wine\cleonos_wine_lib | 7 | 1,087 | 1 | 206 | 1,294 |
|
||||
+-------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||
|
||||
Files
|
||||
+-------------------------------------------------------------+------------------+------------+------------+------------+------------+
|
||||
| filename | language | code | comment | blank | total |
|
||||
+-------------------------------------------------------------+------------------+------------+------------+------------+------------+
|
||||
| d:\Projects\C\cleonos\CMakeLists.txt | CMake | 44 | 0 | 9 | 53 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\ansi_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\append_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cat_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cd_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\clear_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cp_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\dmesg_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\exec_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\exit_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\fsstat_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\hello_main.c | C | 6 | 0 | 2 | 8 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\help_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\kbdstat_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\ls_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\memstat_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\mkdir_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\mv_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\pid_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\pwd_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\restart_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\rm_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_cmd.c | C | 776 | 0 | 182 | 958 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_external.c | C | 223 | 0 | 75 | 298 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_input.c | C | 255 | 0 | 68 | 323 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_internal.h | C++ | 84 | 0 | 19 | 103 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_path.c | C | 153 | 0 | 50 | 203 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_script.c | C | 35 | 0 | 12 | 47 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_util.c | C | 211 | 0 | 66 | 277 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell_main.c | C | -377 | 0 | -118 | -495 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shstat_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shutdown_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\sleep_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\spawn_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\stats_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\taskstat_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\touch_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\tty_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\userstat_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\wait_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\write_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\yield_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\include\cleonos_syscall.h | C++ | 42 | 0 | 1 | 43 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\src\runtime.c | C | -3 | 0 | -1 | -4 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\src\syscall.c | C | 63 | 0 | 21 | 84 |
|
||||
| d:\Projects\C\cleonos\clks\arch\x86_64\exec_stack_call.S | Go Assembly | 14 | 0 | 6 | 20 |
|
||||
| d:\Projects\C\cleonos\clks\drivers\video\framebuffer.c | C | 68 | 0 | 22 | 90 |
|
||||
| d:\Projects\C\cleonos\clks\drivers\video\psf_font.c | C | 71 | 0 | 21 | 92 |
|
||||
| d:\Projects\C\cleonos\clks\drivers\video\psf_font.h | C++ | 1 | 0 | 1 | 2 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\desktop.h | C++ | 7 | 0 | 4 | 11 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\elf64.h | C++ | 5 | 0 | 1 | 6 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\exec.h | C++ | 10 | 0 | 1 | 11 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\framebuffer.h | C++ | 3 | 0 | 1 | 4 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\keyboard.h | C++ | 1 | 0 | 0 | 1 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\log.h | C++ | 2 | 0 | 1 | 3 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\mouse.h | C++ | 20 | 0 | 6 | 26 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\panic.h | C++ | 7 | 0 | 3 | 10 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\syscall.h | C++ | 21 | 0 | 0 | 21 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\tty.h | C++ | 2 | 0 | -1 | 1 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\userland.h | C++ | 1 | 0 | 0 | 1 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\desktop.c | C | 321 | 0 | 86 | 407 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\elf64.c | C | 69 | 0 | 21 | 90 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\exec.c | C | 504 | 0 | 151 | 655 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\interrupts.c | C | 4 | 0 | 0 | 4 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\keyboard.c | C | 60 | 0 | 22 | 82 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\kmain.c | C | 18 | 0 | 2 | 20 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\log.c | C | 44 | 0 | 16 | 60 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\mouse.c | C | 246 | 0 | 63 | 309 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\panic.c | C | 179 | 0 | 60 | 239 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\scheduler.c | C | 9 | 0 | 2 | 11 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\shell.c | C | 389 | 0 | 87 | 476 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\syscall.c | C | 249 | 0 | 60 | 309 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\tty.c | C | 354 | 0 | 90 | 444 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\userland.c | C | 11 | 0 | 3 | 14 |
|
||||
| d:\Projects\C\cleonos\clks\lib\libc_compat.c | C | 25 | 0 | 7 | 32 |
|
||||
| d:\Projects\C\cleonos\clks\rust\src\lib.rs | Rust | 21 | 0 | 6 | 27 |
|
||||
| d:\Projects\C\cleonos\docs\README.md | Markdown | 9 | 0 | 2 | 11 |
|
||||
| d:\Projects\C\cleonos\docs\stage22.md | Markdown | 68 | 0 | 7 | 75 |
|
||||
| d:\Projects\C\cleonos\docs\stage23.md | Markdown | 41 | 0 | 6 | 47 |
|
||||
| d:\Projects\C\cleonos\docs\stage24.md | Markdown | 42 | 0 | 7 | 49 |
|
||||
| d:\Projects\C\cleonos\docs\stage25.md | Markdown | 58 | 0 | 7 | 65 |
|
||||
| d:\Projects\C\cleonos\docs\stage26.md | Markdown | 32 | 0 | 7 | 39 |
|
||||
| d:\Projects\C\cleonos\docs\stage27.md | Markdown | 28 | 0 | 7 | 35 |
|
||||
| d:\Projects\C\cleonos\docs\stage28.md | Markdown | 37 | 0 | 7 | 44 |
|
||||
| d:\Projects\C\cleonos\docs\stage29.md | Markdown | 33 | 0 | 7 | 40 |
|
||||
| d:\Projects\C\cleonos\docs\syscall.md | Markdown | 251 | 0 | 124 | 375 |
|
||||
| d:\Projects\C\cleonos\ramdisk\shell\init.cmd | Batch | -7 | 0 | 0 | -7 |
|
||||
| d:\Projects\C\cleonos\scripts\gen-tty-psf.ps1 | PowerShell | 107 | 0 | 24 | 131 |
|
||||
| d:\Projects\C\cleonos\wine\README.md | Markdown | 37 | 0 | 14 | 51 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine.py | Python | 3 | 1 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\__init__.py | Python | 4 | 0 | 1 | 5 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\cli.py | Python | 44 | 0 | 10 | 54 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\constants.py | Python | 63 | 1 | 10 | 74 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\input_pump.py | Python | 82 | 0 | 17 | 99 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\platform.py | Python | 37 | 0 | 4 | 41 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\runner.py | Python | 753 | 0 | 137 | 890 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\state.py | Python | 104 | 0 | 27 | 131 |
|
||||
| d:\Projects\C\cleonos\wine\requirements.txt | pip requirements | 1 | 0 | 1 | 2 |
|
||||
| Total | | 6,203 | 2 | 1,653 | 7,858 |
|
||||
+-------------------------------------------------------------+------------------+------------+------------+------------+------------+
|
||||
@@ -1,167 +0,0 @@
|
||||
"filename", "language", "pip requirements", "Python", "CMake", "Markdown", "Makefile", "Batch", "Rust", "C", "C++", "Properties", "PowerShell", "Go Assembly", "comment", "blank", "total"
|
||||
"d:\Projects\C\cleonos\CMakeLists.txt", "CMake", 0, 0, 579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 663
|
||||
"d:\Projects\C\cleonos\Makefile", "Makefile", 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 22, 122
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\ansi_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\append_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cat_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cd_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\clear_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cp_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\dmesg_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\elfrunner_kmain.c", "C", 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 9
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\elfrunner_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 9
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\exec_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\exit_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\fsstat_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\hello_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 2, 8
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\help_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\kbdstat_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\ls_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\memc_kmain.c", "C", 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 9
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\memc_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 3, 11
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\memstat_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\mkdir_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\mv_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\pid_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\pwd_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\restart_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\rm_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_cmd.c", "C", 0, 0, 0, 0, 0, 0, 0, 776, 0, 0, 0, 0, 0, 182, 958
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_external.c", "C", 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 75, 298
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_input.c", "C", 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 68, 323
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_internal.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 19, 103
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_path.c", "C", 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 0, 50, 203
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_script.c", "C", 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 12, 47
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_util.c", "C", 0, 0, 0, 0, 0, 0, 0, 211, 0, 0, 0, 0, 0, 66, 277
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 6, 25
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shstat_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shutdown_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\sleep_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\spawn_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\stats_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\taskstat_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\touch_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\tty_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\ttydrv_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 9
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\userstat_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\wait_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\write_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\yield_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\include\cleonos_rust_bridge.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 4, 10
|
||||
"d:\Projects\C\cleonos\cleonos\c\include\cleonos_syscall.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 6, 108
|
||||
"d:\Projects\C\cleonos\cleonos\c\src\runtime.c", "C", 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 5, 13
|
||||
"d:\Projects\C\cleonos\cleonos\c\src\syscall.c", "C", 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, 0, 0, 50, 202
|
||||
"d:\Projects\C\cleonos\cleonos\c\stub.c", "C", 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 2, 9
|
||||
"d:\Projects\C\cleonos\cleonos\rust\src\lib.rs", "Rust", 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 9, 32
|
||||
"d:\Projects\C\cleonos\clks\arch\aarch64\boot.c", "C", 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 7
|
||||
"d:\Projects\C\cleonos\clks\arch\x86_64\boot.c", "C", 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 1, 7
|
||||
"d:\Projects\C\cleonos\clks\arch\x86_64\exec_stack_call.S", "Go Assembly", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 6, 20
|
||||
"d:\Projects\C\cleonos\clks\arch\x86_64\interrupt_stubs.S", "Go Assembly", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 12, 120
|
||||
"d:\Projects\C\cleonos\clks\drivers\serial\serial.c", "C", 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 16, 68
|
||||
"d:\Projects\C\cleonos\clks\drivers\video\font8x8.c", "C", 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 8, 75
|
||||
"d:\Projects\C\cleonos\clks\drivers\video\font8x8.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 3, 8
|
||||
"d:\Projects\C\cleonos\clks\drivers\video\framebuffer.c", "C", 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, 0, 0, 0, 64, 294
|
||||
"d:\Projects\C\cleonos\clks\drivers\video\psf_font.c", "C", 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, 0, 0, 0, 56, 286
|
||||
"d:\Projects\C\cleonos\clks\drivers\video\psf_font.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 5, 20
|
||||
"d:\Projects\C\cleonos\clks\include\clks\boot.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 4, 15
|
||||
"d:\Projects\C\cleonos\clks\include\clks\compiler.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 4, 17
|
||||
"d:\Projects\C\cleonos\clks\include\clks\cpu.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 4, 24
|
||||
"d:\Projects\C\cleonos\clks\include\clks\desktop.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 4, 11
|
||||
"d:\Projects\C\cleonos\clks\include\clks\driver.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 8, 36
|
||||
"d:\Projects\C\cleonos\clks\include\clks\elf64.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 9, 41
|
||||
"d:\Projects\C\cleonos\clks\include\clks\elfrunner.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 3, 9
|
||||
"d:\Projects\C\cleonos\clks\include\clks\exec.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 4, 22
|
||||
"d:\Projects\C\cleonos\clks\include\clks\framebuffer.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 5, 28
|
||||
"d:\Projects\C\cleonos\clks\include\clks\fs.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 7, 30
|
||||
"d:\Projects\C\cleonos\clks\include\clks\heap.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 4, 19
|
||||
"d:\Projects\C\cleonos\clks\include\clks\interrupts.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 3, 9
|
||||
"d:\Projects\C\cleonos\clks\include\clks\kelf.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 5, 14
|
||||
"d:\Projects\C\cleonos\clks\include\clks\kernel.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 6
|
||||
"d:\Projects\C\cleonos\clks\include\clks\keyboard.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 5, 25
|
||||
"d:\Projects\C\cleonos\clks\include\clks\limine.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, 24, 156
|
||||
"d:\Projects\C\cleonos\clks\include\clks\log.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 5, 19
|
||||
"d:\Projects\C\cleonos\clks\include\clks\mouse.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 6, 26
|
||||
"d:\Projects\C\cleonos\clks\include\clks\panic.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 3, 10
|
||||
"d:\Projects\C\cleonos\clks\include\clks\pmm.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 5, 21
|
||||
"d:\Projects\C\cleonos\clks\include\clks\ramdisk.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 8, 25
|
||||
"d:\Projects\C\cleonos\clks\include\clks\scheduler.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 5, 23
|
||||
"d:\Projects\C\cleonos\clks\include\clks\serial.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 2, 8
|
||||
"d:\Projects\C\cleonos\clks\include\clks\service.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 8, 39
|
||||
"d:\Projects\C\cleonos\clks\include\clks\shell.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 3, 10
|
||||
"d:\Projects\C\cleonos\clks\include\clks\string.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 3, 12
|
||||
"d:\Projects\C\cleonos\clks\include\clks\syscall.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 4, 59
|
||||
"d:\Projects\C\cleonos\clks\include\clks\task.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 7, 31
|
||||
"d:\Projects\C\cleonos\clks\include\clks\tty.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 4, 18
|
||||
"d:\Projects\C\cleonos\clks\include\clks\types.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 6, 23
|
||||
"d:\Projects\C\cleonos\clks\include\clks\userland.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 4, 16
|
||||
"d:\Projects\C\cleonos\clks\kernel\desktop.c", "C", 0, 0, 0, 0, 0, 0, 0, 321, 0, 0, 0, 0, 0, 86, 407
|
||||
"d:\Projects\C\cleonos\clks\kernel\driver.c", "C", 0, 0, 0, 0, 0, 0, 0, 163, 0, 0, 0, 0, 0, 48, 211
|
||||
"d:\Projects\C\cleonos\clks\kernel\elf64.c", "C", 0, 0, 0, 0, 0, 0, 0, 239, 0, 0, 0, 0, 0, 73, 312
|
||||
"d:\Projects\C\cleonos\clks\kernel\elfrunner.c", "C", 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 8, 38
|
||||
"d:\Projects\C\cleonos\clks\kernel\exec.c", "C", 0, 0, 0, 0, 0, 0, 0, 555, 0, 0, 0, 0, 0, 166, 721
|
||||
"d:\Projects\C\cleonos\clks\kernel\fs.c", "C", 0, 0, 0, 0, 0, 0, 0, 698, 0, 0, 0, 0, 0, 220, 918
|
||||
"d:\Projects\C\cleonos\clks\kernel\heap.c", "C", 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, 42, 176
|
||||
"d:\Projects\C\cleonos\clks\kernel\interrupts.c", "C", 0, 0, 0, 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, 43, 345
|
||||
"d:\Projects\C\cleonos\clks\kernel\kelf.c", "C", 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 1, 53, 257
|
||||
"d:\Projects\C\cleonos\clks\kernel\keyboard.c", "C", 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 64, 323
|
||||
"d:\Projects\C\cleonos\clks\kernel\kmain.c", "C", 0, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 0, 1, 52, 251
|
||||
"d:\Projects\C\cleonos\clks\kernel\limine_requests.c", "C", 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 26, 102
|
||||
"d:\Projects\C\cleonos\clks\kernel\log.c", "C", 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 33, 156
|
||||
"d:\Projects\C\cleonos\clks\kernel\mouse.c", "C", 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 63, 309
|
||||
"d:\Projects\C\cleonos\clks\kernel\panic.c", "C", 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 60, 239
|
||||
"d:\Projects\C\cleonos\clks\kernel\pmm.c", "C", 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 23, 105
|
||||
"d:\Projects\C\cleonos\clks\kernel\ramdisk.c", "C", 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, 0, 0, 0, 50, 222
|
||||
"d:\Projects\C\cleonos\clks\kernel\scheduler.c", "C", 0, 0, 0, 0, 0, 0, 0, 136, 0, 0, 0, 0, 0, 44, 180
|
||||
"d:\Projects\C\cleonos\clks\kernel\service.c", "C", 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 34, 147
|
||||
"d:\Projects\C\cleonos\clks\kernel\shell.c", "C", 0, 0, 0, 0, 0, 0, 0, 1249, 0, 0, 0, 0, 0, 317, 1566
|
||||
"d:\Projects\C\cleonos\clks\kernel\syscall.c", "C", 0, 0, 0, 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 110, 602
|
||||
"d:\Projects\C\cleonos\clks\kernel\tty.c", "C", 0, 0, 0, 0, 0, 0, 0, 629, 0, 0, 0, 0, 0, 167, 796
|
||||
"d:\Projects\C\cleonos\clks\kernel\userland.c", "C", 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, 35, 159
|
||||
"d:\Projects\C\cleonos\clks\lib\libc_compat.c", "C", 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 7, 32
|
||||
"d:\Projects\C\cleonos\clks\lib\string.c", "C", 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 16, 70
|
||||
"d:\Projects\C\cleonos\clks\rust\src\lib.rs", "Rust", 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 6, 27
|
||||
"d:\Projects\C\cleonos\cmake\check_tools.cmake", "CMake", 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 38
|
||||
"d:\Projects\C\cleonos\cmake\log.cmake", "CMake", 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 36
|
||||
"d:\Projects\C\cleonos\cmake\log_emit.cmake", "CMake", 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 29
|
||||
"d:\Projects\C\cleonos\cmake\setup_limine.cmake", "CMake", 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 118
|
||||
"d:\Projects\C\cleonos\configs\limine.conf", "Properties", 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 1, 7
|
||||
"d:\Projects\C\cleonos\docs\README.md", "Markdown", 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 35
|
||||
"d:\Projects\C\cleonos\docs\stage1.md", "Markdown", 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 46
|
||||
"d:\Projects\C\cleonos\docs\stage10.md", "Markdown", 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 40
|
||||
"d:\Projects\C\cleonos\docs\stage11.md", "Markdown", 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 41
|
||||
"d:\Projects\C\cleonos\docs\stage12.md", "Markdown", 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 46
|
||||
"d:\Projects\C\cleonos\docs\stage13.md", "Markdown", 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 40
|
||||
"d:\Projects\C\cleonos\docs\stage14.md", "Markdown", 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 52
|
||||
"d:\Projects\C\cleonos\docs\stage15.md", "Markdown", 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 54
|
||||
"d:\Projects\C\cleonos\docs\stage2.md", "Markdown", 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 35
|
||||
"d:\Projects\C\cleonos\docs\stage20.md", "Markdown", 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 52
|
||||
"d:\Projects\C\cleonos\docs\stage21.md", "Markdown", 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 79
|
||||
"d:\Projects\C\cleonos\docs\stage22.md", "Markdown", 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 75
|
||||
"d:\Projects\C\cleonos\docs\stage23.md", "Markdown", 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 47
|
||||
"d:\Projects\C\cleonos\docs\stage24.md", "Markdown", 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 49
|
||||
"d:\Projects\C\cleonos\docs\stage25.md", "Markdown", 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 65
|
||||
"d:\Projects\C\cleonos\docs\stage26.md", "Markdown", 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 39
|
||||
"d:\Projects\C\cleonos\docs\stage27.md", "Markdown", 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 35
|
||||
"d:\Projects\C\cleonos\docs\stage28.md", "Markdown", 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 44
|
||||
"d:\Projects\C\cleonos\docs\stage29.md", "Markdown", 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 40
|
||||
"d:\Projects\C\cleonos\docs\stage3.md", "Markdown", 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 34
|
||||
"d:\Projects\C\cleonos\docs\stage4.md", "Markdown", 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 35
|
||||
"d:\Projects\C\cleonos\docs\stage5.md", "Markdown", 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 34
|
||||
"d:\Projects\C\cleonos\docs\stage6.md", "Markdown", 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 36
|
||||
"d:\Projects\C\cleonos\docs\stage7.md", "Markdown", 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 40
|
||||
"d:\Projects\C\cleonos\docs\stage8.md", "Markdown", 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 37
|
||||
"d:\Projects\C\cleonos\docs\stage9.md", "Markdown", 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 37
|
||||
"d:\Projects\C\cleonos\docs\syscall.md", "Markdown", 0, 0, 0, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 375
|
||||
"d:\Projects\C\cleonos\ramdisk\shell\init.cmd", "Batch", 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 6
|
||||
"d:\Projects\C\cleonos\scripts\gen-tty-psf.ps1", "PowerShell", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, 2, 42, 215
|
||||
"d:\Projects\C\cleonos\wine\README.md", "Markdown", 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 51
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine.py", "Python", 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 7
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\__init__.py", "Python", 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\cli.py", "Python", 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 54
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\constants.py", "Python", 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10, 74
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\input_pump.py", "Python", 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 99
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\platform.py", "Python", 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 41
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\runner.py", "Python", 0, 753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 137, 890
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\state.py", "Python", 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 131
|
||||
"d:\Projects\C\cleonos\wine\requirements.txt", "pip requirements", 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2
|
||||
"Total", "-", 1, 1090, 764, 1296, 100, 4, 44, 9394, 846, 6, 171, 122, 10, 3547, 17395
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1,65 +0,0 @@
|
||||
# Summary
|
||||
|
||||
Date : 2026-04-14 20:12:49
|
||||
|
||||
Directory d:\\Projects\\C\\cleonos
|
||||
|
||||
Total : 165 files, 13838 codes, 10 comments, 3547 blanks, all 17395 lines
|
||||
|
||||
Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
|
||||
|
||||
## Languages
|
||||
| language | files | code | comment | blank | total |
|
||||
| :--- | ---: | ---: | ---: | ---: | ---: |
|
||||
| C | 79 | 9,394 | 6 | 2,615 | 12,015 |
|
||||
| Markdown | 28 | 1,296 | 0 | 297 | 1,593 |
|
||||
| Python | 8 | 1,090 | 2 | 209 | 1,301 |
|
||||
| C++ | 36 | 846 | 0 | 205 | 1,051 |
|
||||
| CMake | 5 | 764 | 0 | 120 | 884 |
|
||||
| PowerShell | 1 | 171 | 2 | 42 | 215 |
|
||||
| Go Assembly | 2 | 122 | 0 | 18 | 140 |
|
||||
| Makefile | 1 | 100 | 0 | 22 | 122 |
|
||||
| Rust | 2 | 44 | 0 | 15 | 59 |
|
||||
| Properties | 1 | 6 | 0 | 1 | 7 |
|
||||
| Batch | 1 | 4 | 0 | 2 | 6 |
|
||||
| pip requirements | 1 | 1 | 0 | 1 | 2 |
|
||||
|
||||
## Directories
|
||||
| path | files | code | comment | blank | total |
|
||||
| :--- | ---: | ---: | ---: | ---: | ---: |
|
||||
| . | 165 | 13,838 | 10 | 3,547 | 17,395 |
|
||||
| . (Files) | 2 | 679 | 0 | 106 | 785 |
|
||||
| cleonos | 52 | 2,216 | 4 | 667 | 2,887 |
|
||||
| cleonos\\c | 51 | 2,193 | 4 | 658 | 2,855 |
|
||||
| cleonos\\c (Files) | 1 | 3 | 4 | 2 | 9 |
|
||||
| cleonos\\c\\apps | 46 | 1,922 | 0 | 591 | 2,513 |
|
||||
| cleonos\\c\\apps (Files) | 39 | 185 | 0 | 119 | 304 |
|
||||
| cleonos\\c\\apps\\shell | 7 | 1,737 | 0 | 472 | 2,209 |
|
||||
| cleonos\\c\\include | 2 | 108 | 0 | 10 | 118 |
|
||||
| cleonos\\c\\src | 2 | 160 | 0 | 55 | 215 |
|
||||
| cleonos\\rust | 1 | 23 | 0 | 9 | 32 |
|
||||
| cleonos\\rust\\src | 1 | 23 | 0 | 9 | 32 |
|
||||
| clks | 67 | 8,190 | 2 | 2,186 | 10,378 |
|
||||
| clks\\arch | 4 | 134 | 0 | 20 | 154 |
|
||||
| clks\\arch\\aarch64 | 1 | 6 | 0 | 1 | 7 |
|
||||
| clks\\arch\\x86_64 | 3 | 128 | 0 | 19 | 147 |
|
||||
| clks\\drivers | 6 | 599 | 0 | 152 | 751 |
|
||||
| clks\\drivers\\serial | 1 | 52 | 0 | 16 | 68 |
|
||||
| clks\\drivers\\video | 5 | 547 | 0 | 136 | 683 |
|
||||
| clks\\include | 31 | 634 | 0 | 168 | 802 |
|
||||
| clks\\include\\clks | 31 | 634 | 0 | 168 | 802 |
|
||||
| clks\\kernel | 23 | 6,723 | 2 | 1,817 | 8,542 |
|
||||
| clks\\lib | 2 | 79 | 0 | 23 | 102 |
|
||||
| clks\\rust | 1 | 21 | 0 | 6 | 27 |
|
||||
| clks\\rust\\src | 1 | 21 | 0 | 6 | 27 |
|
||||
| cmake | 4 | 185 | 0 | 36 | 221 |
|
||||
| configs | 1 | 6 | 0 | 1 | 7 |
|
||||
| docs | 27 | 1,259 | 0 | 283 | 1,542 |
|
||||
| ramdisk | 1 | 4 | 0 | 2 | 6 |
|
||||
| ramdisk\\shell | 1 | 4 | 0 | 2 | 6 |
|
||||
| scripts | 1 | 171 | 2 | 42 | 215 |
|
||||
| wine | 10 | 1,128 | 2 | 224 | 1,354 |
|
||||
| wine (Files) | 3 | 41 | 1 | 18 | 60 |
|
||||
| wine\\cleonos_wine_lib | 7 | 1,087 | 1 | 206 | 1,294 |
|
||||
|
||||
Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
|
||||
@@ -1,233 +0,0 @@
|
||||
Date : 2026-04-14 20:12:49
|
||||
Directory : d:\Projects\C\cleonos
|
||||
Total : 165 files, 13838 codes, 10 comments, 3547 blanks, all 17395 lines
|
||||
|
||||
Languages
|
||||
+------------------+------------+------------+------------+------------+------------+
|
||||
| language | files | code | comment | blank | total |
|
||||
+------------------+------------+------------+------------+------------+------------+
|
||||
| C | 79 | 9,394 | 6 | 2,615 | 12,015 |
|
||||
| Markdown | 28 | 1,296 | 0 | 297 | 1,593 |
|
||||
| Python | 8 | 1,090 | 2 | 209 | 1,301 |
|
||||
| C++ | 36 | 846 | 0 | 205 | 1,051 |
|
||||
| CMake | 5 | 764 | 0 | 120 | 884 |
|
||||
| PowerShell | 1 | 171 | 2 | 42 | 215 |
|
||||
| Go Assembly | 2 | 122 | 0 | 18 | 140 |
|
||||
| Makefile | 1 | 100 | 0 | 22 | 122 |
|
||||
| Rust | 2 | 44 | 0 | 15 | 59 |
|
||||
| Properties | 1 | 6 | 0 | 1 | 7 |
|
||||
| Batch | 1 | 4 | 0 | 2 | 6 |
|
||||
| pip requirements | 1 | 1 | 0 | 1 | 2 |
|
||||
+------------------+------------+------------+------------+------------+------------+
|
||||
|
||||
Directories
|
||||
+---------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||
| path | files | code | comment | blank | total |
|
||||
+---------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||
| . | 165 | 13,838 | 10 | 3,547 | 17,395 |
|
||||
| . (Files) | 2 | 679 | 0 | 106 | 785 |
|
||||
| cleonos | 52 | 2,216 | 4 | 667 | 2,887 |
|
||||
| cleonos\c | 51 | 2,193 | 4 | 658 | 2,855 |
|
||||
| cleonos\c (Files) | 1 | 3 | 4 | 2 | 9 |
|
||||
| cleonos\c\apps | 46 | 1,922 | 0 | 591 | 2,513 |
|
||||
| cleonos\c\apps (Files) | 39 | 185 | 0 | 119 | 304 |
|
||||
| cleonos\c\apps\shell | 7 | 1,737 | 0 | 472 | 2,209 |
|
||||
| cleonos\c\include | 2 | 108 | 0 | 10 | 118 |
|
||||
| cleonos\c\src | 2 | 160 | 0 | 55 | 215 |
|
||||
| cleonos\rust | 1 | 23 | 0 | 9 | 32 |
|
||||
| cleonos\rust\src | 1 | 23 | 0 | 9 | 32 |
|
||||
| clks | 67 | 8,190 | 2 | 2,186 | 10,378 |
|
||||
| clks\arch | 4 | 134 | 0 | 20 | 154 |
|
||||
| clks\arch\aarch64 | 1 | 6 | 0 | 1 | 7 |
|
||||
| clks\arch\x86_64 | 3 | 128 | 0 | 19 | 147 |
|
||||
| clks\drivers | 6 | 599 | 0 | 152 | 751 |
|
||||
| clks\drivers\serial | 1 | 52 | 0 | 16 | 68 |
|
||||
| clks\drivers\video | 5 | 547 | 0 | 136 | 683 |
|
||||
| clks\include | 31 | 634 | 0 | 168 | 802 |
|
||||
| clks\include\clks | 31 | 634 | 0 | 168 | 802 |
|
||||
| clks\kernel | 23 | 6,723 | 2 | 1,817 | 8,542 |
|
||||
| clks\lib | 2 | 79 | 0 | 23 | 102 |
|
||||
| clks\rust | 1 | 21 | 0 | 6 | 27 |
|
||||
| clks\rust\src | 1 | 21 | 0 | 6 | 27 |
|
||||
| cmake | 4 | 185 | 0 | 36 | 221 |
|
||||
| configs | 1 | 6 | 0 | 1 | 7 |
|
||||
| docs | 27 | 1,259 | 0 | 283 | 1,542 |
|
||||
| ramdisk | 1 | 4 | 0 | 2 | 6 |
|
||||
| ramdisk\shell | 1 | 4 | 0 | 2 | 6 |
|
||||
| scripts | 1 | 171 | 2 | 42 | 215 |
|
||||
| wine | 10 | 1,128 | 2 | 224 | 1,354 |
|
||||
| wine (Files) | 3 | 41 | 1 | 18 | 60 |
|
||||
| wine\cleonos_wine_lib | 7 | 1,087 | 1 | 206 | 1,294 |
|
||||
+---------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||
|
||||
Files
|
||||
+---------------------------------------------------------------+------------------+------------+------------+------------+------------+
|
||||
| filename | language | code | comment | blank | total |
|
||||
+---------------------------------------------------------------+------------------+------------+------------+------------+------------+
|
||||
| d:\Projects\C\cleonos\CMakeLists.txt | CMake | 579 | 0 | 84 | 663 |
|
||||
| d:\Projects\C\cleonos\Makefile | Makefile | 100 | 0 | 22 | 122 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\ansi_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\append_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cat_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cd_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\clear_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cp_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\dmesg_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\elfrunner_kmain.c | C | 6 | 0 | 3 | 9 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\elfrunner_main.c | C | 6 | 0 | 3 | 9 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\exec_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\exit_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\fsstat_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\hello_main.c | C | 6 | 0 | 2 | 8 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\help_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\kbdstat_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\ls_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\memc_kmain.c | C | 6 | 0 | 3 | 9 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\memc_main.c | C | 8 | 0 | 3 | 11 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\memstat_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\mkdir_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\mv_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\pid_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\pwd_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\restart_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\rm_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_cmd.c | C | 776 | 0 | 182 | 958 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_external.c | C | 223 | 0 | 75 | 298 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_input.c | C | 255 | 0 | 68 | 323 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_internal.h | C++ | 84 | 0 | 19 | 103 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_path.c | C | 153 | 0 | 50 | 203 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_script.c | C | 35 | 0 | 12 | 47 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_util.c | C | 211 | 0 | 66 | 277 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell_main.c | C | 19 | 0 | 6 | 25 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shstat_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shutdown_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\sleep_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\spawn_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\stats_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\taskstat_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\touch_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\tty_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\ttydrv_main.c | C | 6 | 0 | 3 | 9 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\userstat_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\wait_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\write_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\yield_main.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\include\cleonos_rust_bridge.h | C++ | 6 | 0 | 4 | 10 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\include\cleonos_syscall.h | C++ | 102 | 0 | 6 | 108 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\src\runtime.c | C | 8 | 0 | 5 | 13 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\src\syscall.c | C | 152 | 0 | 50 | 202 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\stub.c | C | 3 | 4 | 2 | 9 |
|
||||
| d:\Projects\C\cleonos\cleonos\rust\src\lib.rs | Rust | 23 | 0 | 9 | 32 |
|
||||
| d:\Projects\C\cleonos\clks\arch\aarch64\boot.c | C | 6 | 0 | 1 | 7 |
|
||||
| d:\Projects\C\cleonos\clks\arch\x86_64\boot.c | C | 6 | 0 | 1 | 7 |
|
||||
| d:\Projects\C\cleonos\clks\arch\x86_64\exec_stack_call.S | Go Assembly | 14 | 0 | 6 | 20 |
|
||||
| d:\Projects\C\cleonos\clks\arch\x86_64\interrupt_stubs.S | Go Assembly | 108 | 0 | 12 | 120 |
|
||||
| d:\Projects\C\cleonos\clks\drivers\serial\serial.c | C | 52 | 0 | 16 | 68 |
|
||||
| d:\Projects\C\cleonos\clks\drivers\video\font8x8.c | C | 67 | 0 | 8 | 75 |
|
||||
| d:\Projects\C\cleonos\clks\drivers\video\font8x8.h | C++ | 5 | 0 | 3 | 8 |
|
||||
| d:\Projects\C\cleonos\clks\drivers\video\framebuffer.c | C | 230 | 0 | 64 | 294 |
|
||||
| d:\Projects\C\cleonos\clks\drivers\video\psf_font.c | C | 230 | 0 | 56 | 286 |
|
||||
| d:\Projects\C\cleonos\clks\drivers\video\psf_font.h | C++ | 15 | 0 | 5 | 20 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\boot.h | C++ | 11 | 0 | 4 | 15 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\compiler.h | C++ | 13 | 0 | 4 | 17 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\cpu.h | C++ | 20 | 0 | 4 | 24 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\desktop.h | C++ | 7 | 0 | 4 | 11 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\driver.h | C++ | 28 | 0 | 8 | 36 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\elf64.h | C++ | 32 | 0 | 9 | 41 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\elfrunner.h | C++ | 6 | 0 | 3 | 9 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\exec.h | C++ | 18 | 0 | 4 | 22 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\framebuffer.h | C++ | 23 | 0 | 5 | 28 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\fs.h | C++ | 23 | 0 | 7 | 30 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\heap.h | C++ | 15 | 0 | 4 | 19 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\interrupts.h | C++ | 6 | 0 | 3 | 9 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\kelf.h | C++ | 9 | 0 | 5 | 14 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\kernel.h | C++ | 4 | 0 | 2 | 6 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\keyboard.h | C++ | 20 | 0 | 5 | 25 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\limine.h | C++ | 132 | 0 | 24 | 156 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\log.h | C++ | 14 | 0 | 5 | 19 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\mouse.h | C++ | 20 | 0 | 6 | 26 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\panic.h | C++ | 7 | 0 | 3 | 10 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\pmm.h | C++ | 16 | 0 | 5 | 21 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\ramdisk.h | C++ | 17 | 0 | 8 | 25 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\scheduler.h | C++ | 18 | 0 | 5 | 23 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\serial.h | C++ | 6 | 0 | 2 | 8 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\service.h | C++ | 31 | 0 | 8 | 39 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\shell.h | C++ | 7 | 0 | 3 | 10 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\string.h | C++ | 9 | 0 | 3 | 12 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\syscall.h | C++ | 55 | 0 | 4 | 59 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\task.h | C++ | 24 | 0 | 7 | 31 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\tty.h | C++ | 14 | 0 | 4 | 18 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\types.h | C++ | 17 | 0 | 6 | 23 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\userland.h | C++ | 12 | 0 | 4 | 16 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\desktop.c | C | 321 | 0 | 86 | 407 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\driver.c | C | 163 | 0 | 48 | 211 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\elf64.c | C | 239 | 0 | 73 | 312 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\elfrunner.c | C | 30 | 0 | 8 | 38 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\exec.c | C | 555 | 0 | 166 | 721 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\fs.c | C | 698 | 0 | 220 | 918 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\heap.c | C | 134 | 0 | 42 | 176 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\interrupts.c | C | 302 | 0 | 43 | 345 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\kelf.c | C | 203 | 1 | 53 | 257 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\keyboard.c | C | 259 | 0 | 64 | 323 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\kmain.c | C | 198 | 1 | 52 | 251 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\limine_requests.c | C | 76 | 0 | 26 | 102 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\log.c | C | 123 | 0 | 33 | 156 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\mouse.c | C | 246 | 0 | 63 | 309 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\panic.c | C | 179 | 0 | 60 | 239 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\pmm.c | C | 82 | 0 | 23 | 105 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\ramdisk.c | C | 172 | 0 | 50 | 222 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\scheduler.c | C | 136 | 0 | 44 | 180 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\service.c | C | 113 | 0 | 34 | 147 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\shell.c | C | 1,249 | 0 | 317 | 1,566 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\syscall.c | C | 492 | 0 | 110 | 602 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\tty.c | C | 629 | 0 | 167 | 796 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\userland.c | C | 124 | 0 | 35 | 159 |
|
||||
| d:\Projects\C\cleonos\clks\lib\libc_compat.c | C | 25 | 0 | 7 | 32 |
|
||||
| d:\Projects\C\cleonos\clks\lib\string.c | C | 54 | 0 | 16 | 70 |
|
||||
| d:\Projects\C\cleonos\clks\rust\src\lib.rs | Rust | 21 | 0 | 6 | 27 |
|
||||
| d:\Projects\C\cleonos\cmake\check_tools.cmake | CMake | 32 | 0 | 6 | 38 |
|
||||
| d:\Projects\C\cleonos\cmake\log.cmake | CMake | 30 | 0 | 6 | 36 |
|
||||
| d:\Projects\C\cleonos\cmake\log_emit.cmake | CMake | 23 | 0 | 6 | 29 |
|
||||
| d:\Projects\C\cleonos\cmake\setup_limine.cmake | CMake | 100 | 0 | 18 | 118 |
|
||||
| d:\Projects\C\cleonos\configs\limine.conf | Properties | 6 | 0 | 1 | 7 |
|
||||
| d:\Projects\C\cleonos\docs\README.md | Markdown | 31 | 0 | 4 | 35 |
|
||||
| d:\Projects\C\cleonos\docs\stage1.md | Markdown | 41 | 0 | 5 | 46 |
|
||||
| d:\Projects\C\cleonos\docs\stage10.md | Markdown | 34 | 0 | 6 | 40 |
|
||||
| d:\Projects\C\cleonos\docs\stage11.md | Markdown | 36 | 0 | 5 | 41 |
|
||||
| d:\Projects\C\cleonos\docs\stage12.md | Markdown | 40 | 0 | 6 | 46 |
|
||||
| d:\Projects\C\cleonos\docs\stage13.md | Markdown | 34 | 0 | 6 | 40 |
|
||||
| d:\Projects\C\cleonos\docs\stage14.md | Markdown | 44 | 0 | 8 | 52 |
|
||||
| d:\Projects\C\cleonos\docs\stage15.md | Markdown | 47 | 0 | 7 | 54 |
|
||||
| d:\Projects\C\cleonos\docs\stage2.md | Markdown | 30 | 0 | 5 | 35 |
|
||||
| d:\Projects\C\cleonos\docs\stage20.md | Markdown | 46 | 0 | 6 | 52 |
|
||||
| d:\Projects\C\cleonos\docs\stage21.md | Markdown | 72 | 0 | 7 | 79 |
|
||||
| d:\Projects\C\cleonos\docs\stage22.md | Markdown | 68 | 0 | 7 | 75 |
|
||||
| d:\Projects\C\cleonos\docs\stage23.md | Markdown | 41 | 0 | 6 | 47 |
|
||||
| d:\Projects\C\cleonos\docs\stage24.md | Markdown | 42 | 0 | 7 | 49 |
|
||||
| d:\Projects\C\cleonos\docs\stage25.md | Markdown | 58 | 0 | 7 | 65 |
|
||||
| d:\Projects\C\cleonos\docs\stage26.md | Markdown | 32 | 0 | 7 | 39 |
|
||||
| d:\Projects\C\cleonos\docs\stage27.md | Markdown | 28 | 0 | 7 | 35 |
|
||||
| d:\Projects\C\cleonos\docs\stage28.md | Markdown | 37 | 0 | 7 | 44 |
|
||||
| d:\Projects\C\cleonos\docs\stage29.md | Markdown | 33 | 0 | 7 | 40 |
|
||||
| d:\Projects\C\cleonos\docs\stage3.md | Markdown | 29 | 0 | 5 | 34 |
|
||||
| d:\Projects\C\cleonos\docs\stage4.md | Markdown | 30 | 0 | 5 | 35 |
|
||||
| d:\Projects\C\cleonos\docs\stage5.md | Markdown | 29 | 0 | 5 | 34 |
|
||||
| d:\Projects\C\cleonos\docs\stage6.md | Markdown | 30 | 0 | 6 | 36 |
|
||||
| d:\Projects\C\cleonos\docs\stage7.md | Markdown | 34 | 0 | 6 | 40 |
|
||||
| d:\Projects\C\cleonos\docs\stage8.md | Markdown | 31 | 0 | 6 | 37 |
|
||||
| d:\Projects\C\cleonos\docs\stage9.md | Markdown | 31 | 0 | 6 | 37 |
|
||||
| d:\Projects\C\cleonos\docs\syscall.md | Markdown | 251 | 0 | 124 | 375 |
|
||||
| d:\Projects\C\cleonos\ramdisk\shell\init.cmd | Batch | 4 | 0 | 2 | 6 |
|
||||
| d:\Projects\C\cleonos\scripts\gen-tty-psf.ps1 | PowerShell | 171 | 2 | 42 | 215 |
|
||||
| d:\Projects\C\cleonos\wine\README.md | Markdown | 37 | 0 | 14 | 51 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine.py | Python | 3 | 1 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\__init__.py | Python | 4 | 0 | 1 | 5 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\cli.py | Python | 44 | 0 | 10 | 54 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\constants.py | Python | 63 | 1 | 10 | 74 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\input_pump.py | Python | 82 | 0 | 17 | 99 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\platform.py | Python | 37 | 0 | 4 | 41 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\runner.py | Python | 753 | 0 | 137 | 890 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\state.py | Python | 104 | 0 | 27 | 131 |
|
||||
| d:\Projects\C\cleonos\wine\requirements.txt | pip requirements | 1 | 0 | 1 | 2 |
|
||||
| Total | | 13,838 | 10 | 3,547 | 17,395 |
|
||||
+---------------------------------------------------------------+------------------+------------+------------+------------+------------+
|
||||
584
.VSCodeCounter/2026-04-21_02-41-45/details.md
Normal file
584
.VSCodeCounter/2026-04-21_02-41-45/details.md
Normal file
@@ -0,0 +1,584 @@
|
||||
# Details
|
||||
|
||||
Date : 2026-04-21 02:41:45
|
||||
|
||||
Directory d:\\Projects\\C\\cleonos
|
||||
|
||||
Total : 569 files, 108044 codes, 13937 comments, 27927 blanks, all 149908 lines
|
||||
|
||||
[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
|
||||
|
||||
## Files
|
||||
| filename | language | code | comment | blank | total |
|
||||
| :--- | :--- | ---: | ---: | ---: | ---: |
|
||||
| [.github/workflows/build-os.yml](/.github/workflows/build-os.yml) | YAML | 76 | 1 | 11 | 88 |
|
||||
| [.github/workflows/style-check.yml](/.github/workflows/style-check.yml) | YAML | 109 | 0 | 19 | 128 |
|
||||
| [CMakeLists.txt](/CMakeLists.txt) | CMake | 906 | 0 | 108 | 1,014 |
|
||||
| [Makefile](/Makefile) | Makefile | 130 | 0 | 24 | 154 |
|
||||
| [README.md](/README.md) | Markdown | 92 | 0 | 34 | 126 |
|
||||
| [README.zh-CN.md](/README.zh-CN.md) | Markdown | 92 | 0 | 34 | 126 |
|
||||
| [cleonos/c/apps/ansi\_main.c](/cleonos/c/apps/ansi_main.c) | C | 45 | 0 | 9 | 54 |
|
||||
| [cleonos/c/apps/ansitest\_main.c](/cleonos/c/apps/ansitest_main.c) | C | 145 | 0 | 33 | 178 |
|
||||
| [cleonos/c/apps/append\_main.c](/cleonos/c/apps/append_main.c) | C | 74 | 0 | 16 | 90 |
|
||||
| [cleonos/c/apps/args\_main.c](/cleonos/c/apps/args_main.c) | C | 49 | 0 | 13 | 62 |
|
||||
| [cleonos/c/apps/bg\_main.c](/cleonos/c/apps/bg_main.c) | C | 101 | 0 | 26 | 127 |
|
||||
| [cleonos/c/apps/bmpview\_main.c](/cleonos/c/apps/bmpview_main.c) | C | 331 | 0 | 81 | 412 |
|
||||
| [cleonos/c/apps/cat\_main.c](/cleonos/c/apps/cat_main.c) | C | 87 | 0 | 20 | 107 |
|
||||
| [cleonos/c/apps/cd\_main.c](/cleonos/c/apps/cd_main.c) | C | 54 | 0 | 13 | 67 |
|
||||
| [cleonos/c/apps/clear\_main.c](/cleonos/c/apps/clear_main.c) | C | 39 | 0 | 9 | 48 |
|
||||
| [cleonos/c/apps/cmd\_runtime.c](/cleonos/c/apps/cmd_runtime.c) | C | 459 | 0 | 139 | 598 |
|
||||
| [cleonos/c/apps/cmd\_runtime.h](/cleonos/c/apps/cmd_runtime.h) | C++ | 80 | 0 | 19 | 99 |
|
||||
| [cleonos/c/apps/cp\_main.c](/cleonos/c/apps/cp_main.c) | C | 109 | 0 | 23 | 132 |
|
||||
| [cleonos/c/apps/cut\_main.c](/cleonos/c/apps/cut_main.c) | C | 210 | 1 | 54 | 265 |
|
||||
| [cleonos/c/apps/dltest\_main.c](/cleonos/c/apps/dltest_main.c) | C | 38 | 0 | 11 | 49 |
|
||||
| [cleonos/c/apps/dmesg\_main.c](/cleonos/c/apps/dmesg_main.c) | C | 64 | 0 | 16 | 80 |
|
||||
| [cleonos/c/apps/doom/doom\_compat.c](/cleonos/c/apps/doom/doom_compat.c) | C | 1,196 | 0 | 277 | 1,473 |
|
||||
| [cleonos/c/apps/doom/doom\_shim.h](/cleonos/c/apps/doom/doom_shim.h) | C++ | 17 | 1 | 3 | 21 |
|
||||
| [cleonos/c/apps/doom/doomgeneric\_clks.c](/cleonos/c/apps/doom/doomgeneric_clks.c) | C | 153 | 0 | 48 | 201 |
|
||||
| [cleonos/c/apps/doom\_main.c](/cleonos/c/apps/doom_main.c) | C | 66 | 0 | 16 | 82 |
|
||||
| [cleonos/c/apps/elfrunner\_kmain.c](/cleonos/c/apps/elfrunner_kmain.c) | C | 6 | 0 | 3 | 9 |
|
||||
| [cleonos/c/apps/elfrunner\_main.c](/cleonos/c/apps/elfrunner_main.c) | C | 6 | 0 | 3 | 9 |
|
||||
| [cleonos/c/apps/exec\_main.c](/cleonos/c/apps/exec_main.c) | C | 87 | 0 | 20 | 107 |
|
||||
| [cleonos/c/apps/exit\_main.c](/cleonos/c/apps/exit_main.c) | C | 54 | 0 | 12 | 66 |
|
||||
| [cleonos/c/apps/fastfetch\_main.c](/cleonos/c/apps/fastfetch_main.c) | C | 180 | 0 | 32 | 212 |
|
||||
| [cleonos/c/apps/fg\_main.c](/cleonos/c/apps/fg_main.c) | C | 149 | 0 | 36 | 185 |
|
||||
| [cleonos/c/apps/fsstat\_main.c](/cleonos/c/apps/fsstat_main.c) | C | 46 | 0 | 9 | 55 |
|
||||
| [cleonos/c/apps/grep\_main.c](/cleonos/c/apps/grep_main.c) | C | 196 | 0 | 53 | 249 |
|
||||
| [cleonos/c/apps/head\_main.c](/cleonos/c/apps/head_main.c) | C | 165 | 0 | 46 | 211 |
|
||||
| [cleonos/c/apps/hello\_main.c](/cleonos/c/apps/hello_main.c) | C | 5 | 0 | 2 | 7 |
|
||||
| [cleonos/c/apps/help\_main.c](/cleonos/c/apps/help_main.c) | C | 83 | 0 | 9 | 92 |
|
||||
| [cleonos/c/apps/jobs\_main.c](/cleonos/c/apps/jobs_main.c) | C | 120 | 0 | 26 | 146 |
|
||||
| [cleonos/c/apps/kbdstat\_main.c](/cleonos/c/apps/kbdstat_main.c) | C | 44 | 0 | 9 | 53 |
|
||||
| [cleonos/c/apps/kdbg\_main.c](/cleonos/c/apps/kdbg_main.c) | C | 213 | 0 | 56 | 269 |
|
||||
| [cleonos/c/apps/kill\_main.c](/cleonos/c/apps/kill_main.c) | C | 144 | 0 | 39 | 183 |
|
||||
| [cleonos/c/apps/libctest\_main.c](/cleonos/c/apps/libctest_main.c) | C | 219 | 0 | 39 | 258 |
|
||||
| [cleonos/c/apps/libdemo\_main.c](/cleonos/c/apps/libdemo_main.c) | C | 19 | 0 | 6 | 25 |
|
||||
| [cleonos/c/apps/ls\_main.c](/cleonos/c/apps/ls_main.c) | C | 266 | 0 | 79 | 345 |
|
||||
| [cleonos/c/apps/memc\_kmain.c](/cleonos/c/apps/memc_kmain.c) | C | 6 | 0 | 3 | 9 |
|
||||
| [cleonos/c/apps/memc\_main.c](/cleonos/c/apps/memc_main.c) | C | 8 | 0 | 3 | 11 |
|
||||
| [cleonos/c/apps/memstat\_main.c](/cleonos/c/apps/memstat_main.c) | C | 43 | 0 | 9 | 52 |
|
||||
| [cleonos/c/apps/mkdir\_main.c](/cleonos/c/apps/mkdir_main.c) | C | 57 | 0 | 14 | 71 |
|
||||
| [cleonos/c/apps/mv\_main.c](/cleonos/c/apps/mv_main.c) | C | 102 | 0 | 26 | 128 |
|
||||
| [cleonos/c/apps/pid\_main.c](/cleonos/c/apps/pid_main.c) | C | 39 | 0 | 9 | 48 |
|
||||
| [cleonos/c/apps/procstat\_main.c](/cleonos/c/apps/procstat_main.c) | C | 202 | 0 | 43 | 245 |
|
||||
| [cleonos/c/apps/ps\_main.c](/cleonos/c/apps/ps_main.c) | C | 160 | 0 | 35 | 195 |
|
||||
| [cleonos/c/apps/pwd\_main.c](/cleonos/c/apps/pwd_main.c) | C | 39 | 0 | 9 | 48 |
|
||||
| [cleonos/c/apps/qrcode/qrcodegen.c](/cleonos/c/apps/qrcode/qrcodegen.c) | C | 759 | 176 | 96 | 1,031 |
|
||||
| [cleonos/c/apps/qrcode/qrcodegen.h](/cleonos/c/apps/qrcode/qrcodegen.h) | C++ | 62 | 268 | 34 | 364 |
|
||||
| [cleonos/c/apps/qrcode\_main.c](/cleonos/c/apps/qrcode_main.c) | C | 207 | 1 | 58 | 266 |
|
||||
| [cleonos/c/apps/restart\_main.c](/cleonos/c/apps/restart_main.c) | C | 40 | 0 | 9 | 49 |
|
||||
| [cleonos/c/apps/rm\_main.c](/cleonos/c/apps/rm_main.c) | C | 57 | 0 | 14 | 71 |
|
||||
| [cleonos/c/apps/shell/shell\_cmd.c](/cleonos/c/apps/shell/shell_cmd.c) | C | 2,499 | 0 | 633 | 3,132 |
|
||||
| [cleonos/c/apps/shell/shell\_external.c](/cleonos/c/apps/shell/shell_external.c) | C | 174 | 0 | 57 | 231 |
|
||||
| [cleonos/c/apps/shell/shell\_input.c](/cleonos/c/apps/shell/shell_input.c) | C | 567 | 0 | 148 | 715 |
|
||||
| [cleonos/c/apps/shell/shell\_internal.h](/cleonos/c/apps/shell/shell_internal.h) | C++ | 100 | 0 | 19 | 119 |
|
||||
| [cleonos/c/apps/shell/shell\_path.c](/cleonos/c/apps/shell/shell_path.c) | C | 154 | 0 | 50 | 204 |
|
||||
| [cleonos/c/apps/shell/shell\_script.c](/cleonos/c/apps/shell/shell_script.c) | C | 35 | 0 | 12 | 47 |
|
||||
| [cleonos/c/apps/shell/shell\_util.c](/cleonos/c/apps/shell/shell_util.c) | C | 263 | 0 | 77 | 340 |
|
||||
| [cleonos/c/apps/shell\_main.c](/cleonos/c/apps/shell_main.c) | C | 18 | 0 | 6 | 24 |
|
||||
| [cleonos/c/apps/shstat\_main.c](/cleonos/c/apps/shstat_main.c) | C | 45 | 0 | 9 | 54 |
|
||||
| [cleonos/c/apps/shutdown\_main.c](/cleonos/c/apps/shutdown_main.c) | C | 40 | 0 | 9 | 49 |
|
||||
| [cleonos/c/apps/sleep\_main.c](/cleonos/c/apps/sleep_main.c) | C | 52 | 0 | 12 | 64 |
|
||||
| [cleonos/c/apps/sort\_main.c](/cleonos/c/apps/sort_main.c) | C | 206 | 0 | 62 | 268 |
|
||||
| [cleonos/c/apps/spawn\_main.c](/cleonos/c/apps/spawn_main.c) | C | 76 | 0 | 18 | 94 |
|
||||
| [cleonos/c/apps/spin\_main.c](/cleonos/c/apps/spin_main.c) | C | 12 | 0 | 4 | 16 |
|
||||
| [cleonos/c/apps/stats\_main.c](/cleonos/c/apps/stats_main.c) | C | 103 | 0 | 15 | 118 |
|
||||
| [cleonos/c/apps/sysstat\_main.c](/cleonos/c/apps/sysstat_main.c) | C | 341 | 0 | 45 | 386 |
|
||||
| [cleonos/c/apps/tail\_main.c](/cleonos/c/apps/tail_main.c) | C | 191 | 0 | 53 | 244 |
|
||||
| [cleonos/c/apps/taskstat\_main.c](/cleonos/c/apps/taskstat_main.c) | C | 43 | 0 | 9 | 52 |
|
||||
| [cleonos/c/apps/top\_main.c](/cleonos/c/apps/top_main.c) | C | 193 | 0 | 45 | 238 |
|
||||
| [cleonos/c/apps/touch\_main.c](/cleonos/c/apps/touch_main.c) | C | 58 | 0 | 14 | 72 |
|
||||
| [cleonos/c/apps/tty\_main.c](/cleonos/c/apps/tty_main.c) | C | 64 | 0 | 15 | 79 |
|
||||
| [cleonos/c/apps/ttydrv\_main.c](/cleonos/c/apps/ttydrv_main.c) | C | 6 | 0 | 3 | 9 |
|
||||
| [cleonos/c/apps/uniq\_main.c](/cleonos/c/apps/uniq_main.c) | C | 168 | 0 | 47 | 215 |
|
||||
| [cleonos/c/apps/userstat\_main.c](/cleonos/c/apps/userstat_main.c) | C | 48 | 0 | 9 | 57 |
|
||||
| [cleonos/c/apps/wait\_main.c](/cleonos/c/apps/wait_main.c) | C | 68 | 0 | 15 | 83 |
|
||||
| [cleonos/c/apps/wavplay\_main.c](/cleonos/c/apps/wavplay_main.c) | C | 447 | 0 | 110 | 557 |
|
||||
| [cleonos/c/apps/wc\_main.c](/cleonos/c/apps/wc_main.c) | C | 165 | 0 | 44 | 209 |
|
||||
| [cleonos/c/apps/write\_main.c](/cleonos/c/apps/write_main.c) | C | 74 | 0 | 16 | 90 |
|
||||
| [cleonos/c/apps/yield\_main.c](/cleonos/c/apps/yield_main.c) | C | 39 | 0 | 9 | 48 |
|
||||
| [cleonos/c/include/cleonos\_rust\_bridge.h](/cleonos/c/include/cleonos_rust_bridge.h) | C++ | 6 | 0 | 4 | 10 |
|
||||
| [cleonos/c/include/cleonos\_stdio.h](/cleonos/c/include/cleonos_stdio.h) | C++ | 4 | 0 | 3 | 7 |
|
||||
| [cleonos/c/include/cleonos\_syscall.h](/cleonos/c/include/cleonos_syscall.h) | C++ | 223 | 0 | 12 | 235 |
|
||||
| [cleonos/c/include/ctype.h](/cleonos/c/include/ctype.h) | C++ | 14 | 0 | 3 | 17 |
|
||||
| [cleonos/c/include/dlfcn.h](/cleonos/c/include/dlfcn.h) | C++ | 6 | 0 | 3 | 9 |
|
||||
| [cleonos/c/include/stdio.h](/cleonos/c/include/stdio.h) | C++ | 21 | 0 | 7 | 28 |
|
||||
| [cleonos/c/include/stdlib.h](/cleonos/c/include/stdlib.h) | C++ | 27 | 0 | 10 | 37 |
|
||||
| [cleonos/c/include/string.h](/cleonos/c/include/string.h) | C++ | 25 | 0 | 5 | 30 |
|
||||
| [cleonos/c/src/dlfcn.c](/cleonos/c/src/dlfcn.c) | C | 33 | 0 | 16 | 49 |
|
||||
| [cleonos/c/src/libc\_ctype.c](/cleonos/c/src/libc_ctype.c) | C | 34 | 0 | 12 | 46 |
|
||||
| [cleonos/c/src/libc\_stdlib.c](/cleonos/c/src/libc_stdlib.c) | C | 198 | 0 | 57 | 255 |
|
||||
| [cleonos/c/src/libc\_string.c](/cleonos/c/src/libc_string.c) | C | 340 | 0 | 106 | 446 |
|
||||
| [cleonos/c/src/runtime.c](/cleonos/c/src/runtime.c) | C | 41 | 0 | 13 | 54 |
|
||||
| [cleonos/c/src/stdio.c](/cleonos/c/src/stdio.c) | C | 570 | 0 | 143 | 713 |
|
||||
| [cleonos/c/src/syscall.c](/cleonos/c/src/syscall.c) | C | 278 | 0 | 92 | 370 |
|
||||
| [cleonos/c/stub.c](/cleonos/c/stub.c) | C | 3 | 4 | 2 | 9 |
|
||||
| [cleonos/rust/src/lib.rs](/cleonos/rust/src/lib.rs) | Rust | 23 | 0 | 9 | 32 |
|
||||
| [cleonos/third-party/doomgeneric/README.md](/cleonos/third-party/doomgeneric/README.md) | Markdown | 51 | 0 | 17 | 68 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/Makefile](/cleonos/third-party/doomgeneric/doomgeneric/Makefile) | Makefile | 34 | 7 | 14 | 55 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/am\_map.c](/cleonos/third-party/doomgeneric/doomgeneric/am_map.c) | C | 970 | 162 | 224 | 1,356 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/am\_map.h](/cleonos/third-party/doomgeneric/doomgeneric/am_map.h) | C++ | 13 | 24 | 13 | 50 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/config.h](/cleonos/third-party/doomgeneric/doomgeneric/config.h) | C++ | 33 | 34 | 34 | 101 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_englsh.h](/cleonos/third-party/doomgeneric/doomgeneric/d_englsh.h) | C++ | 522 | 65 | 107 | 694 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_event.c](/cleonos/third-party/doomgeneric/doomgeneric/d_event.c) | C | 22 | 27 | 15 | 64 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_event.h](/cleonos/third-party/doomgeneric/doomgeneric/d_event.h) | C++ | 43 | 66 | 29 | 138 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_items.c](/cleonos/third-party/doomgeneric/doomgeneric/d_items.c) | C | 77 | 38 | 14 | 129 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_items.h](/cleonos/third-party/doomgeneric/doomgeneric/d_items.h) | C++ | 14 | 18 | 10 | 42 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_iwad.c](/cleonos/third-party/doomgeneric/doomgeneric/d_iwad.c) | C | 509 | 133 | 207 | 849 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_iwad.h](/cleonos/third-party/doomgeneric/doomgeneric/d_iwad.h) | C++ | 28 | 16 | 9 | 53 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_loop.c](/cleonos/third-party/doomgeneric/doomgeneric/d_loop.c) | C | 464 | 169 | 194 | 827 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_loop.h](/cleonos/third-party/doomgeneric/doomgeneric/d_loop.h) | C++ | 23 | 34 | 25 | 82 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_main.c](/cleonos/third-party/doomgeneric/doomgeneric/d_main.c) | C | 1,089 | 418 | 339 | 1,846 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_main.h](/cleonos/third-party/doomgeneric/doomgeneric/d_main.h) | C++ | 11 | 24 | 16 | 51 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_mode.c](/cleonos/third-party/doomgeneric/doomgeneric/d_mode.c) | C | 150 | 28 | 32 | 210 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_mode.h](/cleonos/third-party/doomgeneric/doomgeneric/d_mode.h) | C++ | 58 | 24 | 17 | 99 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_net.c](/cleonos/third-party/doomgeneric/doomgeneric/d_net.c) | C | 158 | 61 | 63 | 282 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_player.h](/cleonos/third-party/doomgeneric/doomgeneric/d_player.h) | C++ | 82 | 77 | 51 | 210 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_textur.h](/cleonos/third-party/doomgeneric/doomgeneric/d_textur.h) | C++ | 10 | 22 | 12 | 44 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_think.h](/cleonos/third-party/doomgeneric/doomgeneric/d_think.h) | C++ | 19 | 29 | 21 | 69 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_ticcmd.h](/cleonos/third-party/doomgeneric/doomgeneric/d_ticcmd.h) | C++ | 17 | 26 | 14 | 57 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/deh\_main.h](/cleonos/third-party/doomgeneric/doomgeneric/deh_main.h) | C++ | 19 | 19 | 11 | 49 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/deh\_misc.h](/cleonos/third-party/doomgeneric/doomgeneric/deh_misc.h) | C++ | 55 | 17 | 12 | 84 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/deh\_str.h](/cleonos/third-party/doomgeneric/doomgeneric/deh_str.h) | C++ | 18 | 17 | 13 | 48 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doom.h](/cleonos/third-party/doomgeneric/doomgeneric/doom.h) | C++ | 4 | 27 | 12 | 43 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomdata.h](/cleonos/third-party/doomgeneric/doomgeneric/doomdata.h) | C++ | 93 | 70 | 51 | 214 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomdef.c](/cleonos/third-party/doomgeneric/doomgeneric/doomdef.c) | C | 1 | 20 | 8 | 29 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomdef.h](/cleonos/third-party/doomgeneric/doomgeneric/doomdef.h) | C++ | 86 | 48 | 35 | 169 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomfeatures.h](/cleonos/third-party/doomgeneric/doomgeneric/doomfeatures.h) | C++ | 6 | 22 | 13 | 41 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric.c) | C | 15 | 1 | 12 | 28 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric.h](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric.h) | C++ | 31 | 1 | 18 | 50 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric.vcxproj](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric.vcxproj) | XML | 339 | 0 | 0 | 339 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric\_allegro.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric_allegro.c) | C | 319 | 16 | 119 | 454 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric\_emscripten.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric_emscripten.c) | C | 184 | 5 | 31 | 220 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric\_linuxvt.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric_linuxvt.c) | C | 412 | 39 | 78 | 529 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric\_sdl.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric_sdl.c) | C | 173 | 9 | 29 | 211 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric\_soso.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric_soso.c) | C | 217 | 6 | 54 | 277 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric\_sosox.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric_sosox.c) | C | 197 | 3 | 48 | 248 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric\_win.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric_win.c) | C | 171 | 2 | 37 | 210 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric\_xlib.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric_xlib.c) | C | 161 | 7 | 46 | 214 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomkeys.h](/cleonos/third-party/doomgeneric/doomgeneric/doomkeys.h) | C++ | 61 | 23 | 14 | 98 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomstat.c](/cleonos/third-party/doomgeneric/doomgeneric/doomstat.c) | C | 7 | 19 | 10 | 36 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomstat.h](/cleonos/third-party/doomgeneric/doomgeneric/doomstat.h) | C++ | 77 | 108 | 97 | 282 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomtype.h](/cleonos/third-party/doomgeneric/doomgeneric/doomtype.h) | C++ | 40 | 35 | 30 | 105 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/dstrings.c](/cleonos/third-party/doomgeneric/doomgeneric/dstrings.c) | C | 37 | 22 | 15 | 74 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/dstrings.h](/cleonos/third-party/doomgeneric/doomgeneric/dstrings.h) | C++ | 8 | 22 | 12 | 42 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/dummy.c](/cleonos/third-party/doomgeneric/doomgeneric/dummy.c) | C | 8 | 30 | 16 | 54 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/f\_finale.c](/cleonos/third-party/doomgeneric/doomgeneric/f_finale.c) | C | 528 | 77 | 114 | 719 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/f\_finale.h](/cleonos/third-party/doomgeneric/doomgeneric/f_finale.h) | C++ | 9 | 23 | 14 | 46 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/f\_wipe.c](/cleonos/third-party/doomgeneric/doomgeneric/f_wipe.c) | C | 220 | 31 | 44 | 295 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/f\_wipe.h](/cleonos/third-party/doomgeneric/doomgeneric/f_wipe.h) | C++ | 29 | 22 | 13 | 64 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/g\_game.c](/cleonos/third-party/doomgeneric/doomgeneric/g_game.c) | C | 1,572 | 319 | 413 | 2,304 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/g\_game.h](/cleonos/third-party/doomgeneric/doomgeneric/g_game.h) | C++ | 29 | 28 | 24 | 81 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/gusconf.c](/cleonos/third-party/doomgeneric/doomgeneric/gusconf.c) | C | 190 | 24 | 58 | 272 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/gusconf.h](/cleonos/third-party/doomgeneric/doomgeneric/gusconf.h) | C++ | 7 | 16 | 7 | 30 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/hu\_lib.c](/cleonos/third-party/doomgeneric/doomgeneric/hu_lib.c) | C | 252 | 32 | 64 | 348 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/hu\_lib.h](/cleonos/third-party/doomgeneric/doomgeneric/hu_lib.h) | C++ | 77 | 59 | 47 | 183 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/hu\_stuff.c](/cleonos/third-party/doomgeneric/doomgeneric/hu_stuff.c) | C | 493 | 51 | 98 | 642 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/hu\_stuff.h](/cleonos/third-party/doomgeneric/doomgeneric/hu_stuff.h) | C++ | 21 | 23 | 16 | 60 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_allegromusic.c](/cleonos/third-party/doomgeneric/doomgeneric/i_allegromusic.c) | C | 192 | 38 | 79 | 309 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_allegrosound.c](/cleonos/third-party/doomgeneric/doomgeneric/i_allegrosound.c) | C | 255 | 73 | 106 | 434 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_cdmus.c](/cleonos/third-party/doomgeneric/doomgeneric/i_cdmus.c) | C | 159 | 31 | 54 | 244 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_cdmus.h](/cleonos/third-party/doomgeneric/doomgeneric/i_cdmus.h) | C++ | 20 | 15 | 7 | 42 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_endoom.c](/cleonos/third-party/doomgeneric/doomgeneric/i_endoom.c) | C | 48 | 26 | 28 | 102 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_endoom.h](/cleonos/third-party/doomgeneric/doomgeneric/i_endoom.h) | C++ | 4 | 19 | 7 | 30 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_input.c](/cleonos/third-party/doomgeneric/doomgeneric/i_input.c) | C | 261 | 45 | 36 | 342 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_joystick.c](/cleonos/third-party/doomgeneric/doomgeneric/i_joystick.c) | C | 254 | 38 | 68 | 360 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_joystick.h](/cleonos/third-party/doomgeneric/doomgeneric/i_joystick.h) | C++ | 21 | 33 | 17 | 71 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_scale.c](/cleonos/third-party/doomgeneric/doomgeneric/i_scale.c) | C | 889 | 225 | 339 | 1,453 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_scale.h](/cleonos/third-party/doomgeneric/doomgeneric/i_scale.h) | C++ | 21 | 20 | 13 | 54 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_sdlmusic.c](/cleonos/third-party/doomgeneric/doomgeneric/i_sdlmusic.c) | C | 887 | 177 | 253 | 1,317 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_sdlsound.c](/cleonos/third-party/doomgeneric/doomgeneric/i_sdlsound.c) | C | 616 | 195 | 266 | 1,077 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_sound.c](/cleonos/third-party/doomgeneric/doomgeneric/i_sound.c) | C | 284 | 62 | 75 | 421 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_sound.h](/cleonos/third-party/doomgeneric/doomgeneric/i_sound.h) | C++ | 104 | 71 | 82 | 257 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_swap.h](/cleonos/third-party/doomgeneric/doomgeneric/i_swap.h) | C++ | 34 | 18 | 22 | 74 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_system.c](/cleonos/third-party/doomgeneric/doomgeneric/i_system.c) | C | 347 | 112 | 120 | 579 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_system.h](/cleonos/third-party/doomgeneric/doomgeneric/i_system.h) | C++ | 19 | 37 | 29 | 85 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_timer.c](/cleonos/third-party/doomgeneric/doomgeneric/i_timer.c) | C | 36 | 32 | 29 | 97 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_timer.h](/cleonos/third-party/doomgeneric/doomgeneric/i_timer.h) | C++ | 9 | 23 | 11 | 43 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_video.c](/cleonos/third-party/doomgeneric/doomgeneric/i_video.c) | C | 309 | 74 | 113 | 496 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_video.h](/cleonos/third-party/doomgeneric/doomgeneric/i_video.h) | C++ | 63 | 65 | 48 | 176 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/icon.c](/cleonos/third-party/doomgeneric/doomgeneric/icon.c) | C | 260 | 0 | 3 | 263 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/info.c](/cleonos/third-party/doomgeneric/doomgeneric/info.c) | C | 4,492 | 21 | 150 | 4,663 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/info.h](/cleonos/third-party/doomgeneric/doomgeneric/info.h) | C++ | 1,296 | 21 | 15 | 1,332 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_argv.c](/cleonos/third-party/doomgeneric/doomgeneric/m_argv.c) | C | 150 | 52 | 64 | 266 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_argv.h](/cleonos/third-party/doomgeneric/doomgeneric/m_argv.h) | C++ | 11 | 26 | 13 | 50 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_bbox.c](/cleonos/third-party/doomgeneric/doomgeneric/m_bbox.c) | C | 21 | 20 | 14 | 55 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_bbox.h](/cleonos/third-party/doomgeneric/doomgeneric/m_bbox.h) | C++ | 18 | 19 | 11 | 48 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_cheat.c](/cleonos/third-party/doomgeneric/doomgeneric/m_cheat.c) | C | 38 | 32 | 20 | 90 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_cheat.h](/cleonos/third-party/doomgeneric/doomgeneric/m_cheat.h) | C++ | 24 | 23 | 16 | 63 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_config.c](/cleonos/third-party/doomgeneric/doomgeneric/m_config.c) | C | 615 | 948 | 566 | 2,129 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_config.h](/cleonos/third-party/doomgeneric/doomgeneric/m_config.h) | C++ | 16 | 17 | 7 | 40 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_controls.c](/cleonos/third-party/doomgeneric/doomgeneric/m_controls.c) | C | 269 | 57 | 73 | 399 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_controls.h](/cleonos/third-party/doomgeneric/doomgeneric/m_controls.h) | C++ | 121 | 17 | 31 | 169 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_fixed.c](/cleonos/third-party/doomgeneric/doomgeneric/m_fixed.c) | C | 24 | 21 | 18 | 63 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_fixed.h](/cleonos/third-party/doomgeneric/doomgeneric/m_fixed.h) | C++ | 8 | 20 | 12 | 40 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_menu.c](/cleonos/third-party/doomgeneric/doomgeneric/m_menu.c) | C | 1,502 | 250 | 374 | 2,126 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_menu.h](/cleonos/third-party/doomgeneric/doomgeneric/m_menu.h) | C++ | 11 | 33 | 18 | 62 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_misc.c](/cleonos/third-party/doomgeneric/doomgeneric/m_misc.c) | C | 335 | 87 | 115 | 537 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_misc.h](/cleonos/third-party/doomgeneric/doomgeneric/m_misc.h) | C++ | 27 | 17 | 8 | 52 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_random.c](/cleonos/third-party/doomgeneric/doomgeneric/m_random.c) | C | 37 | 22 | 7 | 66 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_random.h](/cleonos/third-party/doomgeneric/doomgeneric/m_random.h) | C++ | 7 | 21 | 12 | 40 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/memio.c](/cleonos/third-party/doomgeneric/doomgeneric/memio.c) | C | 122 | 27 | 49 | 198 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/memio.h](/cleonos/third-party/doomgeneric/doomgeneric/memio.h) | C++ | 18 | 14 | 7 | 39 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/mus2mid.c](/cleonos/third-party/doomgeneric/doomgeneric/mus2mid.c) | C | 504 | 76 | 158 | 738 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/mus2mid.h](/cleonos/third-party/doomgeneric/doomgeneric/mus2mid.h) | C++ | 6 | 0 | 3 | 9 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_client.h](/cleonos/third-party/doomgeneric/doomgeneric/net_client.h) | C++ | 29 | 15 | 9 | 53 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_dedicated.h](/cleonos/third-party/doomgeneric/doomgeneric/net_dedicated.h) | C++ | 4 | 16 | 6 | 26 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_defs.h](/cleonos/third-party/doomgeneric/doomgeneric/net_defs.h) | C++ | 148 | 46 | 55 | 249 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_gui.h](/cleonos/third-party/doomgeneric/doomgeneric/net_gui.h) | C++ | 5 | 18 | 7 | 30 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_io.h](/cleonos/third-party/doomgeneric/doomgeneric/net_io.h) | C++ | 14 | 16 | 7 | 37 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_loop.h](/cleonos/third-party/doomgeneric/doomgeneric/net_loop.h) | C++ | 6 | 16 | 6 | 28 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_packet.h](/cleonos/third-party/doomgeneric/doomgeneric/net_packet.h) | C++ | 18 | 16 | 11 | 45 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_query.h](/cleonos/third-party/doomgeneric/doomgeneric/net_query.h) | C++ | 19 | 16 | 10 | 45 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_sdl.h](/cleonos/third-party/doomgeneric/doomgeneric/net_sdl.h) | C++ | 5 | 16 | 6 | 27 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_server.h](/cleonos/third-party/doomgeneric/doomgeneric/net_server.h) | C++ | 8 | 21 | 14 | 43 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_ceilng.c](/cleonos/third-party/doomgeneric/doomgeneric/p_ceilng.c) | C | 226 | 47 | 52 | 325 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_doors.c](/cleonos/third-party/doomgeneric/doomgeneric/p_doors.c) | C | 571 | 83 | 125 | 779 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_enemy.c](/cleonos/third-party/doomgeneric/doomgeneric/p_enemy.c) | C | 1,341 | 238 | 428 | 2,007 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_floor.c](/cleonos/third-party/doomgeneric/doomgeneric/p_floor.c) | C | 429 | 54 | 64 | 547 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_inter.c](/cleonos/third-party/doomgeneric/doomgeneric/p_inter.c) | C | 643 | 115 | 165 | 923 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_inter.h](/cleonos/third-party/doomgeneric/doomgeneric/p_inter.h) | C++ | 4 | 17 | 10 | 31 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_lights.c](/cleonos/third-party/doomgeneric/doomgeneric/p_lights.c) | C | 201 | 72 | 78 | 351 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_local.h](/cleonos/third-party/doomgeneric/doomgeneric/p_local.h) | C++ | 155 | 66 | 77 | 298 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_map.c](/cleonos/third-party/doomgeneric/doomgeneric/p_map.c) | C | 828 | 304 | 317 | 1,449 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_maputl.c](/cleonos/third-party/doomgeneric/doomgeneric/p_maputl.c) | C | 651 | 161 | 190 | 1,002 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_mobj.c](/cleonos/third-party/doomgeneric/doomgeneric/p_mobj.c) | C | 654 | 184 | 212 | 1,050 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_mobj.h](/cleonos/third-party/doomgeneric/doomgeneric/p_mobj.h) | C++ | 77 | 161 | 47 | 285 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_plats.c](/cleonos/third-party/doomgeneric/doomgeneric/p_plats.c) | C | 218 | 29 | 58 | 305 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_pspr.c](/cleonos/third-party/doomgeneric/doomgeneric/p_pspr.c) | C | 537 | 173 | 179 | 889 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_pspr.h](/cleonos/third-party/doomgeneric/doomgeneric/p_pspr.h) | C++ | 21 | 35 | 16 | 72 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_saveg.c](/cleonos/third-party/doomgeneric/doomgeneric/p_saveg.c) | C | 975 | 435 | 482 | 1,892 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_saveg.h](/cleonos/third-party/doomgeneric/doomgeneric/p_saveg.h) | C++ | 21 | 24 | 18 | 63 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_setup.c](/cleonos/third-party/doomgeneric/doomgeneric/p_setup.c) | C | 547 | 134 | 175 | 856 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_setup.h](/cleonos/third-party/doomgeneric/doomgeneric/p_setup.h) | C++ | 10 | 19 | 9 | 38 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_sight.c](/cleonos/third-party/doomgeneric/doomgeneric/p_sight.c) | C | 204 | 75 | 72 | 351 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_spec.c](/cleonos/third-party/doomgeneric/doomgeneric/p_spec.c) | C | 908 | 307 | 275 | 1,490 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_spec.h](/cleonos/third-party/doomgeneric/doomgeneric/p_spec.h) | C++ | 380 | 75 | 183 | 638 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_switch.c](/cleonos/third-party/doomgeneric/doomgeneric/p_switch.c) | C | 425 | 111 | 113 | 649 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_telept.c](/cleonos/third-party/doomgeneric/doomgeneric/p_telept.c) | C | 69 | 35 | 30 | 134 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_tick.c](/cleonos/third-party/doomgeneric/doomgeneric/p_tick.c) | C | 63 | 53 | 36 | 152 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_tick.h](/cleonos/third-party/doomgeneric/doomgeneric/p_tick.h) | C++ | 4 | 20 | 10 | 34 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_user.c](/cleonos/third-party/doomgeneric/doomgeneric/p_user.c) | C | 219 | 73 | 88 | 380 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_bsp.c](/cleonos/third-party/doomgeneric/doomgeneric/r_bsp.c) | C | 329 | 122 | 123 | 574 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_bsp.h](/cleonos/third-party/doomgeneric/doomgeneric/r_bsp.h) | C++ | 23 | 19 | 20 | 62 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_data.c](/cleonos/third-party/doomgeneric/doomgeneric/r_data.c) | C | 543 | 167 | 203 | 913 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_data.h](/cleonos/third-party/doomgeneric/doomgeneric/r_data.h) | C++ | 14 | 25 | 13 | 52 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_defs.h](/cleonos/third-party/doomgeneric/doomgeneric/r_defs.h) | C++ | 164 | 155 | 130 | 449 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_draw.c](/cleonos/third-party/doomgeneric/doomgeneric/r_draw.c) | C | 554 | 216 | 206 | 976 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_draw.h](/cleonos/third-party/doomgeneric/doomgeneric/r_draw.h) | C++ | 40 | 33 | 32 | 105 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_local.h](/cleonos/third-party/doomgeneric/doomgeneric/r_local.h) | C++ | 13 | 24 | 9 | 46 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_main.c](/cleonos/third-party/doomgeneric/doomgeneric/r_main.c) | C | 556 | 155 | 181 | 892 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_main.h](/cleonos/third-party/doomgeneric/doomgeneric/r_main.h) | C++ | 72 | 45 | 44 | 161 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_plane.c](/cleonos/third-party/doomgeneric/doomgeneric/r_plane.c) | C | 278 | 84 | 85 | 447 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_plane.h](/cleonos/third-party/doomgeneric/doomgeneric/r_plane.h) | C++ | 37 | 18 | 22 | 77 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_segs.c](/cleonos/third-party/doomgeneric/doomgeneric/r_segs.c) | C | 507 | 103 | 134 | 744 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_segs.h](/cleonos/third-party/doomgeneric/doomgeneric/r_segs.h) | C++ | 8 | 17 | 9 | 34 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_sky.c](/cleonos/third-party/doomgeneric/doomgeneric/r_sky.c) | C | 10 | 31 | 12 | 53 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_sky.h](/cleonos/third-party/doomgeneric/doomgeneric/r_sky.h) | C++ | 8 | 20 | 10 | 38 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_state.h](/cleonos/third-party/doomgeneric/doomgeneric/r_state.h) | C++ | 49 | 36 | 43 | 128 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_things.c](/cleonos/third-party/doomgeneric/doomgeneric/r_things.c) | C | 605 | 171 | 207 | 983 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_things.h](/cleonos/third-party/doomgeneric/doomgeneric/r_things.h) | C++ | 28 | 20 | 18 | 66 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/s\_sound.c](/cleonos/third-party/doomgeneric/doomgeneric/s_sound.c) | C | 431 | 108 | 132 | 671 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/s\_sound.h](/cleonos/third-party/doomgeneric/doomgeneric/s_sound.h) | C++ | 20 | 42 | 28 | 90 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/sha1.c](/cleonos/third-party/doomgeneric/doomgeneric/sha1.c) | C | 239 | 49 | 32 | 320 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/sha1.h](/cleonos/third-party/doomgeneric/doomgeneric/sha1.h) | C++ | 17 | 16 | 8 | 41 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/sounds.c](/cleonos/third-party/doomgeneric/doomgeneric/sounds.c) | C | 192 | 25 | 13 | 230 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/sounds.h](/cleonos/third-party/doomgeneric/doomgeneric/sounds.h) | C++ | 191 | 26 | 11 | 228 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/st\_lib.c](/cleonos/third-party/doomgeneric/doomgeneric/st_lib.c) | C | 186 | 35 | 64 | 285 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/st\_lib.h](/cleonos/third-party/doomgeneric/doomgeneric/st_lib.h) | C++ | 91 | 60 | 59 | 210 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/st\_stuff.c](/cleonos/third-party/doomgeneric/doomgeneric/st_stuff.c) | C | 903 | 216 | 298 | 1,417 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/st\_stuff.h](/cleonos/third-party/doomgeneric/doomgeneric/st_stuff.h) | C++ | 36 | 31 | 23 | 90 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/statdump.c](/cleonos/third-party/doomgeneric/doomgeneric/statdump.c) | C | 239 | 58 | 96 | 393 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/statdump.h](/cleonos/third-party/doomgeneric/doomgeneric/statdump.h) | C++ | 5 | 15 | 4 | 24 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/tables.c](/cleonos/third-party/doomgeneric/doomgeneric/tables.c) | C | 2,173 | 37 | 18 | 2,228 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/tables.h](/cleonos/third-party/doomgeneric/doomgeneric/tables.h) | C++ | 26 | 44 | 27 | 97 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/v\_patch.h](/cleonos/third-party/doomgeneric/doomgeneric/v_patch.h) | C++ | 17 | 25 | 9 | 51 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/v\_video.c](/cleonos/third-party/doomgeneric/doomgeneric/v_video.c) | C | 617 | 139 | 177 | 933 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/v\_video.h](/cleonos/third-party/doomgeneric/doomgeneric/v_video.h) | C++ | 34 | 40 | 35 | 109 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_checksum.c](/cleonos/third-party/doomgeneric/doomgeneric/w_checksum.c) | C | 48 | 21 | 19 | 88 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_checksum.h](/cleonos/third-party/doomgeneric/doomgeneric/w_checksum.h) | C++ | 5 | 17 | 6 | 28 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_file.c](/cleonos/third-party/doomgeneric/doomgeneric/w_file.c) | C | 44 | 32 | 20 | 96 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_file.h](/cleonos/third-party/doomgeneric/doomgeneric/w_file.h) | C++ | 23 | 31 | 25 | 79 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_file\_stdc.c](/cleonos/third-party/doomgeneric/doomgeneric/w_file_stdc.c) | C | 49 | 22 | 26 | 97 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_main.c](/cleonos/third-party/doomgeneric/doomgeneric/w_main.c) | C | 87 | 66 | 46 | 199 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_main.h](/cleonos/third-party/doomgeneric/doomgeneric/w_main.h) | C++ | 4 | 16 | 5 | 25 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_merge.h](/cleonos/third-party/doomgeneric/doomgeneric/w_merge.h) | C++ | 9 | 23 | 13 | 45 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_wad.c](/cleonos/third-party/doomgeneric/doomgeneric/w_wad.c) | C | 353 | 124 | 136 | 613 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_wad.h](/cleonos/third-party/doomgeneric/doomgeneric/w_wad.h) | C++ | 31 | 24 | 24 | 79 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/wi\_stuff.c](/cleonos/third-party/doomgeneric/doomgeneric/wi_stuff.c) | C | 1,215 | 210 | 405 | 1,830 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/wi\_stuff.h](/cleonos/third-party/doomgeneric/doomgeneric/wi_stuff.h) | C++ | 14 | 24 | 11 | 49 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/z\_zone.c](/cleonos/third-party/doomgeneric/doomgeneric/z_zone.c) | C | 278 | 89 | 122 | 489 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/z\_zone.h](/cleonos/third-party/doomgeneric/doomgeneric/z_zone.h) | C++ | 29 | 29 | 16 | 74 |
|
||||
| [clks/arch/aarch64/startup/boot.c](/clks/arch/aarch64/startup/boot.c) | C | 6 | 0 | 1 | 7 |
|
||||
| [clks/arch/x86\_64/interrupt/interrupt\_stubs.S](/clks/arch/x86_64/interrupt/interrupt_stubs.S) | Go Assembly | 108 | 0 | 12 | 120 |
|
||||
| [clks/arch/x86\_64/startup/boot.c](/clks/arch/x86_64/startup/boot.c) | C | 6 | 0 | 1 | 7 |
|
||||
| [clks/arch/x86\_64/startup/exec\_stack\_call.S](/clks/arch/x86_64/startup/exec_stack_call.S) | Go Assembly | 40 | 0 | 8 | 48 |
|
||||
| [clks/include/clks/audio.h](/clks/include/clks/audio.h) | C++ | 9 | 0 | 3 | 12 |
|
||||
| [clks/include/clks/boot.h](/clks/include/clks/boot.h) | C++ | 11 | 0 | 4 | 15 |
|
||||
| [clks/include/clks/compiler.h](/clks/include/clks/compiler.h) | C++ | 13 | 0 | 4 | 17 |
|
||||
| [clks/include/clks/cpu.h](/clks/include/clks/cpu.h) | C++ | 20 | 0 | 4 | 24 |
|
||||
| [clks/include/clks/desktop.h](/clks/include/clks/desktop.h) | C++ | 7 | 0 | 4 | 11 |
|
||||
| [clks/include/clks/driver.h](/clks/include/clks/driver.h) | C++ | 29 | 0 | 8 | 37 |
|
||||
| [clks/include/clks/elf64.h](/clks/include/clks/elf64.h) | C++ | 32 | 0 | 9 | 41 |
|
||||
| [clks/include/clks/elfrunner.h](/clks/include/clks/elfrunner.h) | C++ | 6 | 0 | 3 | 9 |
|
||||
| [clks/include/clks/exec.h](/clks/include/clks/exec.h) | C++ | 73 | 0 | 8 | 81 |
|
||||
| [clks/include/clks/framebuffer.h](/clks/include/clks/framebuffer.h) | C++ | 26 | 0 | 6 | 32 |
|
||||
| [clks/include/clks/fs.h](/clks/include/clks/fs.h) | C++ | 23 | 0 | 7 | 30 |
|
||||
| [clks/include/clks/heap.h](/clks/include/clks/heap.h) | C++ | 15 | 0 | 4 | 19 |
|
||||
| [clks/include/clks/interrupts.h](/clks/include/clks/interrupts.h) | C++ | 6 | 0 | 3 | 9 |
|
||||
| [clks/include/clks/kelf.h](/clks/include/clks/kelf.h) | C++ | 9 | 0 | 5 | 14 |
|
||||
| [clks/include/clks/kernel.h](/clks/include/clks/kernel.h) | C++ | 4 | 0 | 2 | 6 |
|
||||
| [clks/include/clks/keyboard.h](/clks/include/clks/keyboard.h) | C++ | 27 | 0 | 5 | 32 |
|
||||
| [clks/include/clks/limine.h](/clks/include/clks/limine.h) | C++ | 112 | 0 | 24 | 136 |
|
||||
| [clks/include/clks/log.h](/clks/include/clks/log.h) | C++ | 14 | 0 | 5 | 19 |
|
||||
| [clks/include/clks/mouse.h](/clks/include/clks/mouse.h) | C++ | 20 | 0 | 6 | 26 |
|
||||
| [clks/include/clks/panic.h](/clks/include/clks/panic.h) | C++ | 7 | 0 | 4 | 11 |
|
||||
| [clks/include/clks/pmm.h](/clks/include/clks/pmm.h) | C++ | 16 | 0 | 5 | 21 |
|
||||
| [clks/include/clks/ramdisk.h](/clks/include/clks/ramdisk.h) | C++ | 17 | 0 | 8 | 25 |
|
||||
| [clks/include/clks/scheduler.h](/clks/include/clks/scheduler.h) | C++ | 18 | 0 | 5 | 23 |
|
||||
| [clks/include/clks/serial.h](/clks/include/clks/serial.h) | C++ | 6 | 0 | 2 | 8 |
|
||||
| [clks/include/clks/service.h](/clks/include/clks/service.h) | C++ | 31 | 0 | 8 | 39 |
|
||||
| [clks/include/clks/shell.h](/clks/include/clks/shell.h) | C++ | 7 | 0 | 3 | 10 |
|
||||
| [clks/include/clks/string.h](/clks/include/clks/string.h) | C++ | 9 | 0 | 3 | 12 |
|
||||
| [clks/include/clks/syscall.h](/clks/include/clks/syscall.h) | C++ | 91 | 0 | 5 | 96 |
|
||||
| [clks/include/clks/task.h](/clks/include/clks/task.h) | C++ | 19 | 0 | 7 | 26 |
|
||||
| [clks/include/clks/tty.h](/clks/include/clks/tty.h) | C++ | 15 | 0 | 4 | 19 |
|
||||
| [clks/include/clks/types.h](/clks/include/clks/types.h) | C++ | 14 | 0 | 6 | 20 |
|
||||
| [clks/include/clks/userland.h](/clks/include/clks/userland.h) | C++ | 12 | 0 | 4 | 16 |
|
||||
| [clks/kernel/boot/limine/limine\_requests.c](/clks/kernel/boot/limine/limine_requests.c) | C | 76 | 0 | 26 | 102 |
|
||||
| [clks/kernel/core/interrupts.c](/clks/kernel/core/interrupts.c) | C | 307 | 0 | 43 | 350 |
|
||||
| [clks/kernel/core/kmain.c](/clks/kernel/core/kmain.c) | C | 388 | 1 | 77 | 466 |
|
||||
| [clks/kernel/core/log.c](/clks/kernel/core/log.c) | C | 179 | 0 | 48 | 227 |
|
||||
| [clks/kernel/core/panic.c](/clks/kernel/core/panic.c) | C | 527 | 0 | 155 | 682 |
|
||||
| [clks/kernel/core/scheduler.c](/clks/kernel/core/scheduler.c) | C | 136 | 0 | 44 | 180 |
|
||||
| [clks/kernel/core/service.c](/clks/kernel/core/service.c) | C | 107 | 0 | 34 | 141 |
|
||||
| [clks/kernel/hal/audio/pcspeaker.c](/clks/kernel/hal/audio/pcspeaker.c) | C | 101 | 0 | 25 | 126 |
|
||||
| [clks/kernel/hal/serial/serial.c](/clks/kernel/hal/serial/serial.c) | C | 51 | 0 | 16 | 67 |
|
||||
| [clks/kernel/hal/video/font8x8.c](/clks/kernel/hal/video/font8x8.c) | C | 45 | 0 | 8 | 53 |
|
||||
| [clks/kernel/hal/video/font8x8.h](/clks/kernel/hal/video/font8x8.h) | C++ | 5 | 0 | 3 | 8 |
|
||||
| [clks/kernel/hal/video/framebuffer.c](/clks/kernel/hal/video/framebuffer.c) | C | 247 | 0 | 69 | 316 |
|
||||
| [clks/kernel/hal/video/psf\_font.c](/clks/kernel/hal/video/psf_font.c) | C | 203 | 0 | 56 | 259 |
|
||||
| [clks/kernel/hal/video/psf\_font.h](/clks/kernel/hal/video/psf_font.h) | C++ | 15 | 0 | 5 | 20 |
|
||||
| [clks/kernel/input/keyboard.c](/clks/kernel/input/keyboard.c) | C | 370 | 0 | 95 | 465 |
|
||||
| [clks/kernel/input/mouse.c](/clks/kernel/input/mouse.c) | C | 243 | 0 | 63 | 306 |
|
||||
| [clks/kernel/interface/desktop.c](/clks/kernel/interface/desktop.c) | C | 321 | 0 | 86 | 407 |
|
||||
| [clks/kernel/interface/shell.c](/clks/kernel/interface/shell.c) | C | 1,232 | 0 | 316 | 1,548 |
|
||||
| [clks/kernel/interface/tty.c](/clks/kernel/interface/tty.c) | C | 1,137 | 0 | 288 | 1,425 |
|
||||
| [clks/kernel/memory/heap.c](/clks/kernel/memory/heap.c) | C | 137 | 0 | 44 | 181 |
|
||||
| [clks/kernel/memory/pmm.c](/clks/kernel/memory/pmm.c) | C | 82 | 0 | 23 | 105 |
|
||||
| [clks/kernel/runtime/driver.c](/clks/kernel/runtime/driver.c) | C | 166 | 0 | 49 | 215 |
|
||||
| [clks/kernel/runtime/elf64.c](/clks/kernel/runtime/elf64.c) | C | 279 | 1 | 84 | 364 |
|
||||
| [clks/kernel/runtime/elfrunner.c](/clks/kernel/runtime/elfrunner.c) | C | 30 | 0 | 8 | 38 |
|
||||
| [clks/kernel/runtime/exec.c](/clks/kernel/runtime/exec.c) | C | 2,179 | 1 | 595 | 2,775 |
|
||||
| [clks/kernel/runtime/kelf.c](/clks/kernel/runtime/kelf.c) | C | 198 | 1 | 52 | 251 |
|
||||
| [clks/kernel/runtime/syscall.c](/clks/kernel/runtime/syscall.c) | C | 2,021 | 0 | 507 | 2,528 |
|
||||
| [clks/kernel/runtime/userland.c](/clks/kernel/runtime/userland.c) | C | 146 | 0 | 38 | 184 |
|
||||
| [clks/kernel/storage/fs.c](/clks/kernel/storage/fs.c) | C | 684 | 0 | 222 | 906 |
|
||||
| [clks/kernel/storage/ramdisk.c](/clks/kernel/storage/ramdisk.c) | C | 172 | 0 | 50 | 222 |
|
||||
| [clks/kernel/support/libc\_compat.c](/clks/kernel/support/libc_compat.c) | C | 25 | 0 | 7 | 32 |
|
||||
| [clks/kernel/support/string.c](/clks/kernel/support/string.c) | C | 54 | 0 | 16 | 70 |
|
||||
| [clks/rust/src/lib.rs](/clks/rust/src/lib.rs) | Rust | 21 | 0 | 6 | 27 |
|
||||
| [cmake/check\_tools.cmake](/cmake/check_tools.cmake) | CMake | 34 | 0 | 7 | 41 |
|
||||
| [cmake/gen\_kernel\_symbols.cmake](/cmake/gen_kernel_symbols.cmake) | CMake | 80 | 0 | 26 | 106 |
|
||||
| [cmake/log.cmake](/cmake/log.cmake) | CMake | 30 | 0 | 6 | 36 |
|
||||
| [cmake/log\_emit.cmake](/cmake/log_emit.cmake) | CMake | 23 | 0 | 6 | 29 |
|
||||
| [cmake/setup\_limine.cmake](/cmake/setup_limine.cmake) | CMake | 100 | 0 | 19 | 119 |
|
||||
| [configs/limine.conf](/configs/limine.conf) | Properties | 6 | 0 | 1 | 7 |
|
||||
| [configs/menuconfig/clks\_features.json](/configs/menuconfig/clks_features.json) | JSON | 376 | 0 | 1 | 377 |
|
||||
| [docs/README.md](/docs/README.md) | Markdown | 31 | 0 | 4 | 35 |
|
||||
| [docs/stage1.md](/docs/stage1.md) | Markdown | 41 | 0 | 5 | 46 |
|
||||
| [docs/stage10.md](/docs/stage10.md) | Markdown | 34 | 0 | 6 | 40 |
|
||||
| [docs/stage11.md](/docs/stage11.md) | Markdown | 36 | 0 | 5 | 41 |
|
||||
| [docs/stage12.md](/docs/stage12.md) | Markdown | 40 | 0 | 6 | 46 |
|
||||
| [docs/stage13.md](/docs/stage13.md) | Markdown | 34 | 0 | 6 | 40 |
|
||||
| [docs/stage14.md](/docs/stage14.md) | Markdown | 44 | 0 | 8 | 52 |
|
||||
| [docs/stage15.md](/docs/stage15.md) | Markdown | 47 | 0 | 7 | 54 |
|
||||
| [docs/stage2.md](/docs/stage2.md) | Markdown | 30 | 0 | 5 | 35 |
|
||||
| [docs/stage20.md](/docs/stage20.md) | Markdown | 46 | 0 | 6 | 52 |
|
||||
| [docs/stage21.md](/docs/stage21.md) | Markdown | 72 | 0 | 7 | 79 |
|
||||
| [docs/stage22.md](/docs/stage22.md) | Markdown | 68 | 0 | 7 | 75 |
|
||||
| [docs/stage23.md](/docs/stage23.md) | Markdown | 41 | 0 | 6 | 47 |
|
||||
| [docs/stage24.md](/docs/stage24.md) | Markdown | 42 | 0 | 7 | 49 |
|
||||
| [docs/stage25.md](/docs/stage25.md) | Markdown | 58 | 0 | 7 | 65 |
|
||||
| [docs/stage26.md](/docs/stage26.md) | Markdown | 32 | 0 | 7 | 39 |
|
||||
| [docs/stage27.md](/docs/stage27.md) | Markdown | 32 | 0 | 7 | 39 |
|
||||
| [docs/stage28.md](/docs/stage28.md) | Markdown | 37 | 0 | 7 | 44 |
|
||||
| [docs/stage29.md](/docs/stage29.md) | Markdown | 33 | 0 | 7 | 40 |
|
||||
| [docs/stage3.md](/docs/stage3.md) | Markdown | 29 | 0 | 5 | 34 |
|
||||
| [docs/stage4.md](/docs/stage4.md) | Markdown | 30 | 0 | 5 | 35 |
|
||||
| [docs/stage5.md](/docs/stage5.md) | Markdown | 29 | 0 | 5 | 34 |
|
||||
| [docs/stage6.md](/docs/stage6.md) | Markdown | 30 | 0 | 6 | 36 |
|
||||
| [docs/stage7.md](/docs/stage7.md) | Markdown | 34 | 0 | 6 | 40 |
|
||||
| [docs/stage8.md](/docs/stage8.md) | Markdown | 31 | 0 | 6 | 37 |
|
||||
| [docs/stage9.md](/docs/stage9.md) | Markdown | 31 | 0 | 6 | 37 |
|
||||
| [docs/syscall.md](/docs/syscall.md) | Markdown | 499 | 0 | 206 | 705 |
|
||||
| [limine/.github/dependabot.yml](/limine/.github/dependabot.yml) | YAML | 7 | 0 | 1 | 8 |
|
||||
| [limine/.github/workflows/binary-release.yml](/limine/.github/workflows/binary-release.yml) | YAML | 78 | 0 | 21 | 99 |
|
||||
| [limine/.github/workflows/check.yml](/limine/.github/workflows/check.yml) | YAML | 34 | 0 | 12 | 46 |
|
||||
| [limine/.github/workflows/pr\_branch\_check.yml](/limine/.github/workflows/pr_branch_check.yml) | YAML | 13 | 0 | 3 | 16 |
|
||||
| [limine/.github/workflows/qa.yml](/limine/.github/workflows/qa.yml) | YAML | 14 | 0 | 5 | 19 |
|
||||
| [limine/.github/workflows/release.yml](/limine/.github/workflows/release.yml) | YAML | 64 | 0 | 17 | 81 |
|
||||
| [limine/3RDPARTY.md](/limine/3RDPARTY.md) | Markdown | 53 | 0 | 15 | 68 |
|
||||
| [limine/CONFIG.md](/limine/CONFIG.md) | Markdown | 320 | 0 | 53 | 373 |
|
||||
| [limine/FAQ.md](/limine/FAQ.md) | Markdown | 26 | 0 | 10 | 36 |
|
||||
| [limine/INSTALL.md](/limine/INSTALL.md) | Markdown | 37 | 0 | 15 | 52 |
|
||||
| [limine/README.md](/limine/README.md) | Markdown | 70 | 0 | 33 | 103 |
|
||||
| [limine/USAGE.md](/limine/USAGE.md) | Markdown | 85 | 0 | 23 | 108 |
|
||||
| [limine/common/common.mk](/limine/common/common.mk) | Makefile | 562 | 0 | 115 | 677 |
|
||||
| [limine/common/crypt/blake2b.c](/limine/common/crypt/blake2b.c) | C | 179 | 3 | 39 | 221 |
|
||||
| [limine/common/crypt/blake2b.h](/limine/common/crypt/blake2b.h) | C++ | 6 | 0 | 5 | 11 |
|
||||
| [limine/common/drivers/disk.h](/limine/common/drivers/disk.h) | C++ | 18 | 0 | 9 | 27 |
|
||||
| [limine/common/drivers/disk.s2.c](/limine/common/drivers/disk.s2.c) | C | 646 | 33 | 178 | 857 |
|
||||
| [limine/common/drivers/edid.c](/limine/common/drivers/edid.c) | C | 61 | 0 | 25 | 86 |
|
||||
| [limine/common/drivers/edid.h](/limine/common/drivers/edid.h) | C++ | 37 | 0 | 7 | 44 |
|
||||
| [limine/common/drivers/gop.c](/limine/common/drivers/gop.c) | C | 306 | 3 | 73 | 382 |
|
||||
| [limine/common/drivers/gop.h](/limine/common/drivers/gop.h) | C++ | 13 | 0 | 7 | 20 |
|
||||
| [limine/common/drivers/serial.c](/limine/common/drivers/serial.c) | C | 37 | 1 | 13 | 51 |
|
||||
| [limine/common/drivers/serial.h](/limine/common/drivers/serial.h) | C++ | 9 | 0 | 7 | 16 |
|
||||
| [limine/common/drivers/vbe.c](/limine/common/drivers/vbe.c) | C | 307 | 8 | 53 | 368 |
|
||||
| [limine/common/drivers/vbe.h](/limine/common/drivers/vbe.h) | C++ | 11 | 0 | 5 | 16 |
|
||||
| [limine/common/drivers/vga\_textmode.c](/limine/common/drivers/vga_textmode.c) | C | 294 | 5 | 71 | 370 |
|
||||
| [limine/common/drivers/vga\_textmode.h](/limine/common/drivers/vga_textmode.h) | C++ | 24 | 0 | 12 | 36 |
|
||||
| [limine/common/entry.s2.c](/limine/common/entry.s2.c) | C | 106 | 1 | 28 | 135 |
|
||||
| [limine/common/entry.s3.c](/limine/common/entry.s3.c) | C | 202 | 0 | 47 | 249 |
|
||||
| [limine/common/fs/fat32.h](/limine/common/fs/fat32.h) | C++ | 7 | 0 | 5 | 12 |
|
||||
| [limine/common/fs/fat32.s2.c](/limine/common/fs/fat32.s2.c) | C | 577 | 39 | 111 | 727 |
|
||||
| [limine/common/fs/file.h](/limine/common/fs/file.h) | C++ | 39 | 0 | 7 | 46 |
|
||||
| [limine/common/fs/file.s2.c](/limine/common/fs/file.s2.c) | C | 163 | 0 | 22 | 185 |
|
||||
| [limine/common/fs/iso9660.h](/limine/common/fs/iso9660.h) | C++ | 7 | 0 | 4 | 11 |
|
||||
| [limine/common/fs/iso9660.s2.c](/limine/common/fs/iso9660.s2.c) | C | 407 | 38 | 94 | 539 |
|
||||
| [limine/common/gensyms.sh](/limine/common/gensyms.sh) | Shell Script | 33 | 2 | 17 | 52 |
|
||||
| [limine/common/lib/acpi.c](/limine/common/lib/acpi.c) | C | 344 | 27 | 102 | 473 |
|
||||
| [limine/common/lib/acpi.h](/limine/common/lib/acpi.h) | C++ | 163 | 24 | 30 | 217 |
|
||||
| [limine/common/lib/bli.c](/limine/common/lib/bli.c) | C | 67 | 4 | 20 | 91 |
|
||||
| [limine/common/lib/bli.h](/limine/common/lib/bli.h) | C++ | 7 | 0 | 5 | 12 |
|
||||
| [limine/common/lib/config.c](/limine/common/lib/config.c) | C | 628 | 11 | 126 | 765 |
|
||||
| [limine/common/lib/config.h](/limine/common/lib/config.h) | C++ | 28 | 0 | 9 | 37 |
|
||||
| [limine/common/lib/elf.c](/limine/common/lib/elf.c) | C | 964 | 27 | 212 | 1,203 |
|
||||
| [limine/common/lib/elf.h](/limine/common/lib/elf.h) | C++ | 74 | 0 | 14 | 88 |
|
||||
| [limine/common/lib/elsewhere.c](/limine/common/lib/elsewhere.c) | C | 81 | 7 | 17 | 105 |
|
||||
| [limine/common/lib/elsewhere.h](/limine/common/lib/elsewhere.h) | C++ | 16 | 0 | 5 | 21 |
|
||||
| [limine/common/lib/fb.c](/limine/common/lib/fb.c) | C | 153 | 4 | 17 | 174 |
|
||||
| [limine/common/lib/fb.h](/limine/common/lib/fb.h) | C++ | 36 | 0 | 12 | 48 |
|
||||
| [limine/common/lib/fdt.c](/limine/common/lib/fdt.c) | C | 33 | 0 | 12 | 45 |
|
||||
| [limine/common/lib/fdt.h](/limine/common/lib/fdt.h) | C++ | 10 | 0 | 6 | 16 |
|
||||
| [limine/common/lib/getchar.c](/limine/common/lib/getchar.c) | C | 306 | 1 | 59 | 366 |
|
||||
| [limine/common/lib/getchar.h](/limine/common/lib/getchar.h) | C++ | 23 | 0 | 6 | 29 |
|
||||
| [limine/common/lib/gterm.c](/limine/common/lib/gterm.c) | C | 813 | 9 | 118 | 940 |
|
||||
| [limine/common/lib/gterm.h](/limine/common/lib/gterm.h) | C++ | 29 | 0 | 6 | 35 |
|
||||
| [limine/common/lib/guid.c](/limine/common/lib/guid.c) | C | 82 | 0 | 14 | 96 |
|
||||
| [limine/common/lib/guid.h](/limine/common/lib/guid.h) | C++ | 15 | 1 | 5 | 21 |
|
||||
| [limine/common/lib/image.c](/limine/common/lib/image.c) | C | 52 | 2 | 18 | 72 |
|
||||
| [limine/common/lib/image.h](/limine/common/lib/image.h) | C++ | 27 | 0 | 6 | 33 |
|
||||
| [limine/common/lib/libc.c](/limine/common/lib/libc.c) | C | 114 | 3 | 15 | 132 |
|
||||
| [limine/common/lib/libc.h](/limine/common/lib/libc.h) | C++ | 29 | 0 | 8 | 37 |
|
||||
| [limine/common/lib/libc.s2.c](/limine/common/lib/libc.s2.c) | C | 122 | 2 | 26 | 150 |
|
||||
| [limine/common/lib/macros.aarch64\_asm.h](/limine/common/lib/macros.aarch64_asm.h) | C++ | 44 | 4 | 5 | 53 |
|
||||
| [limine/common/lib/memory.s2.c](/limine/common/lib/memory.s2.c) | C | 41 | 0 | 13 | 54 |
|
||||
| [limine/common/lib/misc.c](/limine/common/lib/misc.c) | C | 322 | 8 | 90 | 420 |
|
||||
| [limine/common/lib/misc.h](/limine/common/lib/misc.h) | C++ | 122 | 0 | 32 | 154 |
|
||||
| [limine/common/lib/misc.s2.c](/limine/common/lib/misc.s2.c) | C | 117 | 0 | 12 | 129 |
|
||||
| [limine/common/lib/panic.s2.c](/limine/common/lib/panic.s2.c) | C | 70 | 8 | 12 | 90 |
|
||||
| [limine/common/lib/part.h](/limine/common/lib/part.h) | C++ | 86 | 2 | 23 | 111 |
|
||||
| [limine/common/lib/part.s2.c](/limine/common/lib/part.s2.c) | C | 464 | 31 | 121 | 616 |
|
||||
| [limine/common/lib/pe.c](/limine/common/lib/pe.c) | C | 398 | 5 | 98 | 501 |
|
||||
| [limine/common/lib/pe.h](/limine/common/lib/pe.h) | C++ | 8 | 0 | 5 | 13 |
|
||||
| [limine/common/lib/print.h](/limine/common/lib/print.h) | C++ | 11 | 0 | 6 | 17 |
|
||||
| [limine/common/lib/print.s2.c](/limine/common/lib/print.s2.c) | C | 200 | 0 | 36 | 236 |
|
||||
| [limine/common/lib/rand.c](/limine/common/lib/rand.c) | C | 112 | 5 | 25 | 142 |
|
||||
| [limine/common/lib/rand.h](/limine/common/lib/rand.h) | C++ | 7 | 0 | 5 | 12 |
|
||||
| [limine/common/lib/real.h](/limine/common/lib/real.h) | C++ | 26 | 0 | 9 | 35 |
|
||||
| [limine/common/lib/stb\_image.c](/limine/common/lib/stb_image.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [limine/common/lib/term.c](/limine/common/lib/term.c) | C | 266 | 5 | 49 | 320 |
|
||||
| [limine/common/lib/term.h](/limine/common/lib/term.h) | C++ | 47 | 0 | 13 | 60 |
|
||||
| [limine/common/lib/time.c](/limine/common/lib/time.c) | C | 59 | 2 | 15 | 76 |
|
||||
| [limine/common/lib/time.h](/limine/common/lib/time.h) | C++ | 5 | 0 | 4 | 9 |
|
||||
| [limine/common/lib/trace.h](/limine/common/lib/trace.h) | C++ | 5 | 0 | 4 | 9 |
|
||||
| [limine/common/lib/trace.s2.c](/limine/common/lib/trace.s2.c) | C | 79 | 0 | 9 | 88 |
|
||||
| [limine/common/lib/uri.c](/limine/common/lib/uri.c) | C | 224 | 9 | 54 | 287 |
|
||||
| [limine/common/lib/uri.h](/limine/common/lib/uri.h) | C++ | 7 | 0 | 4 | 11 |
|
||||
| [limine/common/libc-compat/stdlib.h](/limine/common/libc-compat/stdlib.h) | C++ | 4 | 0 | 3 | 7 |
|
||||
| [limine/common/libc-compat/string.h](/limine/common/libc-compat/string.h) | C++ | 19 | 0 | 5 | 24 |
|
||||
| [limine/common/menu.c](/limine/common/menu.c) | C | 1,378 | 30 | 150 | 1,558 |
|
||||
| [limine/common/menu.h](/limine/common/menu.h) | C++ | 13 | 0 | 8 | 21 |
|
||||
| [limine/common/mm/mtrr.c](/limine/common/mm/mtrr.c) | C | 91 | 18 | 32 | 141 |
|
||||
| [limine/common/mm/mtrr.h](/limine/common/mm/mtrr.h) | C++ | 7 | 0 | 5 | 12 |
|
||||
| [limine/common/mm/pmm.c](/limine/common/mm/pmm.c) | C | 70 | 3 | 16 | 89 |
|
||||
| [limine/common/mm/pmm.h](/limine/common/mm/pmm.h) | C++ | 63 | 0 | 18 | 81 |
|
||||
| [limine/common/mm/pmm.s2.c](/limine/common/mm/pmm.s2.c) | C | 662 | 37 | 192 | 891 |
|
||||
| [limine/common/mm/vmm.c](/limine/common/mm/vmm.c) | C | 416 | 30 | 110 | 556 |
|
||||
| [limine/common/mm/vmm.h](/limine/common/mm/vmm.h) | C++ | 125 | 6 | 45 | 176 |
|
||||
| [limine/common/protos/chainload.c](/limine/common/protos/chainload.c) | C | 283 | 7 | 78 | 368 |
|
||||
| [limine/common/protos/chainload.h](/limine/common/protos/chainload.h) | C++ | 5 | 0 | 4 | 9 |
|
||||
| [limine/common/protos/efi\_boot\_entry.c](/limine/common/protos/efi_boot_entry.c) | C | 94 | 6 | 26 | 126 |
|
||||
| [limine/common/protos/efi\_boot\_entry.h](/limine/common/protos/efi_boot_entry.h) | C++ | 5 | 0 | 4 | 9 |
|
||||
| [limine/common/protos/limine.c](/limine/common/protos/limine.c) | C | 1,523 | 80 | 331 | 1,934 |
|
||||
| [limine/common/protos/limine.h](/limine/common/protos/limine.h) | C++ | 5 | 0 | 4 | 9 |
|
||||
| [limine/common/protos/linux.h](/limine/common/protos/linux.h) | C++ | 59 | 1 | 14 | 74 |
|
||||
| [limine/common/protos/linux\_risc.c](/limine/common/protos/linux_risc.c) | C | 412 | 22 | 99 | 533 |
|
||||
| [limine/common/protos/linux\_x86.c](/limine/common/protos/linux_x86.c) | C | 527 | 41 | 96 | 664 |
|
||||
| [limine/common/protos/multiboot.h](/limine/common/protos/multiboot.h) | C++ | 13 | 0 | 5 | 18 |
|
||||
| [limine/common/protos/multiboot1.c](/limine/common/protos/multiboot1.c) | C | 394 | 14 | 105 | 513 |
|
||||
| [limine/common/protos/multiboot1.h](/limine/common/protos/multiboot1.h) | C++ | 76 | 0 | 25 | 101 |
|
||||
| [limine/common/protos/multiboot2.c](/limine/common/protos/multiboot2.c) | C | 782 | 77 | 182 | 1,041 |
|
||||
| [limine/common/protos/multiboot2.h](/limine/common/protos/multiboot2.h) | C++ | 331 | 30 | 58 | 419 |
|
||||
| [limine/common/pxe/pxe.h](/limine/common/pxe/pxe.h) | C++ | 96 | 0 | 16 | 112 |
|
||||
| [limine/common/pxe/pxe.s2.c](/limine/common/pxe/pxe.s2.c) | C | 53 | 2 | 18 | 73 |
|
||||
| [limine/common/pxe/tftp.h](/limine/common/pxe/tftp.h) | C++ | 36 | 0 | 11 | 47 |
|
||||
| [limine/common/pxe/tftp.s2.c](/limine/common/pxe/tftp.s2.c) | C | 211 | 5 | 52 | 268 |
|
||||
| [limine/common/stb\_image.patch](/limine/common/stb_image.patch) | Diff | 74 | 7 | 10 | 91 |
|
||||
| [limine/common/sys/a20.h](/limine/common/sys/a20.h) | C++ | 6 | 0 | 4 | 10 |
|
||||
| [limine/common/sys/a20.s2.c](/limine/common/sys/a20.s2.c) | C | 67 | 5 | 21 | 93 |
|
||||
| [limine/common/sys/cpu.h](/limine/common/sys/cpu.h) | C++ | 429 | 2 | 82 | 513 |
|
||||
| [limine/common/sys/cpu.s2.c](/limine/common/sys/cpu.s2.c) | C | 58 | 6 | 14 | 78 |
|
||||
| [limine/common/sys/cpu\_riscv.c](/limine/common/sys/cpu_riscv.c) | C | 353 | 10 | 65 | 428 |
|
||||
| [limine/common/sys/e820.h](/limine/common/sys/e820.h) | C++ | 9 | 0 | 5 | 14 |
|
||||
| [limine/common/sys/e820.s2.c](/limine/common/sys/e820.s2.c) | C | 33 | 0 | 12 | 45 |
|
||||
| [limine/common/sys/exceptions.s2.c](/limine/common/sys/exceptions.s2.c) | C | 46 | 0 | 5 | 51 |
|
||||
| [limine/common/sys/gdt.h](/limine/common/sys/gdt.h) | C++ | 23 | 0 | 7 | 30 |
|
||||
| [limine/common/sys/gdt.s2.c](/limine/common/sys/gdt.s2.c) | C | 83 | 0 | 13 | 96 |
|
||||
| [limine/common/sys/idt.c](/limine/common/sys/idt.c) | C | 53 | 3 | 16 | 72 |
|
||||
| [limine/common/sys/idt.h](/limine/common/sys/idt.h) | C++ | 43 | 0 | 17 | 60 |
|
||||
| [limine/common/sys/idt.s2.c](/limine/common/sys/idt.s2.c) | C | 26 | 0 | 10 | 36 |
|
||||
| [limine/common/sys/iommu.c](/limine/common/sys/iommu.c) | C | 94 | 21 | 30 | 145 |
|
||||
| [limine/common/sys/iommu.h](/limine/common/sys/iommu.h) | C++ | 4 | 0 | 3 | 7 |
|
||||
| [limine/common/sys/lapic.c](/limine/common/sys/lapic.c) | C | 420 | 23 | 69 | 512 |
|
||||
| [limine/common/sys/lapic.h](/limine/common/sys/lapic.h) | C++ | 30 | 0 | 9 | 39 |
|
||||
| [limine/common/sys/pic.c](/limine/common/sys/pic.c) | C | 37 | 1 | 11 | 49 |
|
||||
| [limine/common/sys/pic.h](/limine/common/sys/pic.h) | C++ | 8 | 0 | 4 | 12 |
|
||||
| [limine/common/sys/sbi.h](/limine/common/sys/sbi.h) | C++ | 25 | 0 | 8 | 33 |
|
||||
| [limine/common/sys/smp.c](/limine/common/sys/smp.c) | C | 917 | 54 | 259 | 1,230 |
|
||||
| [limine/common/sys/smp.h](/limine/common/sys/smp.h) | C++ | 38 | 0 | 13 | 51 |
|
||||
| [limine/decompressor/decompressor.mk](/limine/decompressor/decompressor.mk) | Makefile | 70 | 0 | 15 | 85 |
|
||||
| [limine/decompressor/main.c](/limine/decompressor/main.c) | C | 31 | 2 | 5 | 38 |
|
||||
| [limine/decompressor/memory.c](/limine/decompressor/memory.c) | C | 41 | 0 | 13 | 54 |
|
||||
| [limine/decompressor/tinf.patch](/limine/decompressor/tinf.patch) | Diff | 42 | 3 | 10 | 55 |
|
||||
| [limine/host/hgen.sh](/limine/host/hgen.sh) | Shell Script | 10 | 1 | 6 | 17 |
|
||||
| [limine/host/host.mk](/limine/host/host.mk) | Makefile | 14 | 0 | 6 | 20 |
|
||||
| [limine/host/limine.c](/limine/host/limine.c) | C | 1,192 | 32 | 225 | 1,449 |
|
||||
| [limine/test.mk](/limine/test.mk) | Makefile | 263 | 0 | 16 | 279 |
|
||||
| [limine/test/e9print.c](/limine/test/e9print.c) | C | 81 | 0 | 18 | 99 |
|
||||
| [limine/test/e9print.h](/limine/test/e9print.h) | C++ | 7 | 0 | 3 | 10 |
|
||||
| [limine/test/limine.c](/limine/test/limine.c) | C | 624 | 0 | 82 | 706 |
|
||||
| [limine/test/limine.conf](/limine/test/limine.conf) | Properties | 40 | 1 | 19 | 60 |
|
||||
| [limine/test/memory.c](/limine/test/memory.c) | C | 40 | 0 | 13 | 53 |
|
||||
| [limine/test/multiboot.c](/limine/test/multiboot.c) | C | 57 | 12 | 24 | 93 |
|
||||
| [limine/test/multiboot2.c](/limine/test/multiboot2.c) | C | 141 | 5 | 36 | 182 |
|
||||
| [limine/test/test.mk](/limine/test/test.mk) | Makefile | 143 | 0 | 21 | 164 |
|
||||
| [limine/version.sh](/limine/version.sh) | Shell Script | 19 | 1 | 10 | 30 |
|
||||
| [ramdisk/dev/random](/ramdisk/dev/random) | C++ | 0 | 0 | 1 | 1 |
|
||||
| [ramdisk/shell/init.cmd](/ramdisk/shell/init.cmd) | Batch | 4 | 0 | 2 | 6 |
|
||||
| [scripts/gen-tty-psf.ps1](/scripts/gen-tty-psf.ps1) | PowerShell | 171 | 2 | 42 | 215 |
|
||||
| [scripts/menuconfig.py](/scripts/menuconfig.py) | Python | 1,608 | 24 | 304 | 1,936 |
|
||||
| [wine/README.md](/wine/README.md) | Markdown | 53 | 0 | 19 | 72 |
|
||||
| [wine/cleonos\_wine.py](/wine/cleonos_wine.py) | Python | 3 | 1 | 3 | 7 |
|
||||
| [wine/cleonos\_wine\_lib/\_\_init\_\_.py](/wine/cleonos_wine_lib/__init__.py) | Python | 4 | 0 | 1 | 5 |
|
||||
| [wine/cleonos\_wine\_lib/cli.py](/wine/cleonos_wine_lib/cli.py) | Python | 44 | 0 | 10 | 54 |
|
||||
| [wine/cleonos\_wine\_lib/constants.py](/wine/cleonos_wine_lib/constants.py) | Python | 112 | 4 | 14 | 130 |
|
||||
| [wine/cleonos\_wine\_lib/input\_pump.py](/wine/cleonos_wine_lib/input_pump.py) | Python | 82 | 0 | 17 | 99 |
|
||||
| [wine/cleonos\_wine\_lib/platform.py](/wine/cleonos_wine_lib/platform.py) | Python | 55 | 0 | 5 | 60 |
|
||||
| [wine/cleonos\_wine\_lib/runner.py](/wine/cleonos_wine_lib/runner.py) | Python | 1,459 | 0 | 266 | 1,725 |
|
||||
| [wine/cleonos\_wine\_lib/state.py](/wine/cleonos_wine_lib/state.py) | Python | 282 | 2 | 71 | 355 |
|
||||
| [wine/requirements.txt](/wine/requirements.txt) | pip requirements | 1 | 0 | 1 | 2 |
|
||||
|
||||
[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
|
||||
518
.VSCodeCounter/2026-04-21_02-41-45/diff-details.md
Normal file
518
.VSCodeCounter/2026-04-21_02-41-45/diff-details.md
Normal file
@@ -0,0 +1,518 @@
|
||||
# Diff Details
|
||||
|
||||
Date : 2026-04-21 02:41:45
|
||||
|
||||
Directory d:\\Projects\\C\\cleonos
|
||||
|
||||
Total : 503 files, 77719 codes, 13900 comments, 20413 blanks, all 112032 lines
|
||||
|
||||
[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details
|
||||
|
||||
## Files
|
||||
| filename | language | code | comment | blank | total |
|
||||
| :--- | :--- | ---: | ---: | ---: | ---: |
|
||||
| [.github/workflows/style-check.yml](/.github/workflows/style-check.yml) | YAML | 109 | 0 | 19 | 128 |
|
||||
| [CMakeLists.txt](/CMakeLists.txt) | CMake | 130 | 0 | 10 | 140 |
|
||||
| [cleonos/c/apps/ansi\_main.c](/cleonos/c/apps/ansi_main.c) | C | 2 | 0 | -2 | 0 |
|
||||
| [cleonos/c/apps/ansitest\_main.c](/cleonos/c/apps/ansitest_main.c) | C | 3 | 0 | -2 | 1 |
|
||||
| [cleonos/c/apps/append\_main.c](/cleonos/c/apps/append_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/bmpview\_main.c](/cleonos/c/apps/bmpview_main.c) | C | 331 | 0 | 81 | 412 |
|
||||
| [cleonos/c/apps/cat\_main.c](/cleonos/c/apps/cat_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/cd\_main.c](/cleonos/c/apps/cd_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/clear\_main.c](/cleonos/c/apps/clear_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/cmd\_runtime.c](/cleonos/c/apps/cmd_runtime.c) | C | -5 | 0 | 0 | -5 |
|
||||
| [cleonos/c/apps/cmd\_runtime.h](/cleonos/c/apps/cmd_runtime.h) | C++ | -4 | 0 | 0 | -4 |
|
||||
| [cleonos/c/apps/cp\_main.c](/cleonos/c/apps/cp_main.c) | C | -2 | 0 | -2 | -4 |
|
||||
| [cleonos/c/apps/cut\_main.c](/cleonos/c/apps/cut_main.c) | C | -4 | 0 | -1 | -5 |
|
||||
| [cleonos/c/apps/dmesg\_main.c](/cleonos/c/apps/dmesg_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/doom/doom\_compat.c](/cleonos/c/apps/doom/doom_compat.c) | C | 1,196 | 0 | 277 | 1,473 |
|
||||
| [cleonos/c/apps/doom/doom\_shim.h](/cleonos/c/apps/doom/doom_shim.h) | C++ | 17 | 1 | 3 | 21 |
|
||||
| [cleonos/c/apps/doom/doomgeneric\_clks.c](/cleonos/c/apps/doom/doomgeneric_clks.c) | C | 153 | 0 | 48 | 201 |
|
||||
| [cleonos/c/apps/doom\_main.c](/cleonos/c/apps/doom_main.c) | C | 66 | 0 | 16 | 82 |
|
||||
| [cleonos/c/apps/exec\_main.c](/cleonos/c/apps/exec_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/exit\_main.c](/cleonos/c/apps/exit_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/fastfetch\_main.c](/cleonos/c/apps/fastfetch_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/fg\_main.c](/cleonos/c/apps/fg_main.c) | C | -1 | 0 | 0 | -1 |
|
||||
| [cleonos/c/apps/fsstat\_main.c](/cleonos/c/apps/fsstat_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/grep\_main.c](/cleonos/c/apps/grep_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/head\_main.c](/cleonos/c/apps/head_main.c) | C | 0 | 0 | -1 | -1 |
|
||||
| [cleonos/c/apps/help\_main.c](/cleonos/c/apps/help_main.c) | C | 3 | 0 | -1 | 2 |
|
||||
| [cleonos/c/apps/kbdstat\_main.c](/cleonos/c/apps/kbdstat_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/kdbg\_main.c](/cleonos/c/apps/kdbg_main.c) | C | -1 | 0 | 0 | -1 |
|
||||
| [cleonos/c/apps/ls\_main.c](/cleonos/c/apps/ls_main.c) | C | -10 | 0 | -2 | -12 |
|
||||
| [cleonos/c/apps/memstat\_main.c](/cleonos/c/apps/memstat_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/mkdir\_main.c](/cleonos/c/apps/mkdir_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/mv\_main.c](/cleonos/c/apps/mv_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/pid\_main.c](/cleonos/c/apps/pid_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/pwd\_main.c](/cleonos/c/apps/pwd_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/qrcode/qrcodegen.c](/cleonos/c/apps/qrcode/qrcodegen.c) | C | 759 | 176 | 96 | 1,031 |
|
||||
| [cleonos/c/apps/qrcode/qrcodegen.h](/cleonos/c/apps/qrcode/qrcodegen.h) | C++ | 62 | 268 | 34 | 364 |
|
||||
| [cleonos/c/apps/qrcode\_main.c](/cleonos/c/apps/qrcode_main.c) | C | 207 | 1 | 58 | 266 |
|
||||
| [cleonos/c/apps/restart\_main.c](/cleonos/c/apps/restart_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/rm\_main.c](/cleonos/c/apps/rm_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/shell/shell\_cmd.c](/cleonos/c/apps/shell/shell_cmd.c) | C | -35 | 0 | -4 | -39 |
|
||||
| [cleonos/c/apps/shell/shell\_external.c](/cleonos/c/apps/shell/shell_external.c) | C | -10 | 0 | 0 | -10 |
|
||||
| [cleonos/c/apps/shell/shell\_input.c](/cleonos/c/apps/shell/shell_input.c) | C | 0 | 0 | -1 | -1 |
|
||||
| [cleonos/c/apps/shell/shell\_internal.h](/cleonos/c/apps/shell/shell_internal.h) | C++ | -5 | 0 | -1 | -6 |
|
||||
| [cleonos/c/apps/shell/shell\_path.c](/cleonos/c/apps/shell/shell_path.c) | C | 1 | 0 | 0 | 1 |
|
||||
| [cleonos/c/apps/shell\_main.c](/cleonos/c/apps/shell_main.c) | C | -1 | 0 | 0 | -1 |
|
||||
| [cleonos/c/apps/shstat\_main.c](/cleonos/c/apps/shstat_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/shutdown\_main.c](/cleonos/c/apps/shutdown_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/sleep\_main.c](/cleonos/c/apps/sleep_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/sort\_main.c](/cleonos/c/apps/sort_main.c) | C | 1 | 0 | -1 | 0 |
|
||||
| [cleonos/c/apps/spawn\_main.c](/cleonos/c/apps/spawn_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/spin\_main.c](/cleonos/c/apps/spin_main.c) | C | -1 | 0 | 0 | -1 |
|
||||
| [cleonos/c/apps/stats\_main.c](/cleonos/c/apps/stats_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/sysstat\_main.c](/cleonos/c/apps/sysstat_main.c) | C | 74 | 0 | 0 | 74 |
|
||||
| [cleonos/c/apps/tail\_main.c](/cleonos/c/apps/tail_main.c) | C | 0 | 0 | -1 | -1 |
|
||||
| [cleonos/c/apps/taskstat\_main.c](/cleonos/c/apps/taskstat_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/top\_main.c](/cleonos/c/apps/top_main.c) | C | -1 | 0 | 0 | -1 |
|
||||
| [cleonos/c/apps/touch\_main.c](/cleonos/c/apps/touch_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/tty\_main.c](/cleonos/c/apps/tty_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/uniq\_main.c](/cleonos/c/apps/uniq_main.c) | C | 0 | 0 | -1 | -1 |
|
||||
| [cleonos/c/apps/userstat\_main.c](/cleonos/c/apps/userstat_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/wait\_main.c](/cleonos/c/apps/wait_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/wavplay\_main.c](/cleonos/c/apps/wavplay_main.c) | C | -8 | 0 | 0 | -8 |
|
||||
| [cleonos/c/apps/wc\_main.c](/cleonos/c/apps/wc_main.c) | C | 0 | 0 | -1 | -1 |
|
||||
| [cleonos/c/apps/write\_main.c](/cleonos/c/apps/write_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/apps/yield\_main.c](/cleonos/c/apps/yield_main.c) | C | 0 | 0 | -2 | -2 |
|
||||
| [cleonos/c/include/cleonos\_syscall.h](/cleonos/c/include/cleonos_syscall.h) | C++ | 17 | 0 | 2 | 19 |
|
||||
| [cleonos/c/src/stdio.c](/cleonos/c/src/stdio.c) | C | 177 | 0 | 35 | 212 |
|
||||
| [cleonos/c/src/syscall.c](/cleonos/c/src/syscall.c) | C | 0 | 0 | 2 | 2 |
|
||||
| [cleonos/third-party/doomgeneric/README.md](/cleonos/third-party/doomgeneric/README.md) | Markdown | 51 | 0 | 17 | 68 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/Makefile](/cleonos/third-party/doomgeneric/doomgeneric/Makefile) | Makefile | 34 | 7 | 14 | 55 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/am\_map.c](/cleonos/third-party/doomgeneric/doomgeneric/am_map.c) | C | 970 | 162 | 224 | 1,356 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/am\_map.h](/cleonos/third-party/doomgeneric/doomgeneric/am_map.h) | C++ | 13 | 24 | 13 | 50 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/config.h](/cleonos/third-party/doomgeneric/doomgeneric/config.h) | C++ | 33 | 34 | 34 | 101 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_englsh.h](/cleonos/third-party/doomgeneric/doomgeneric/d_englsh.h) | C++ | 522 | 65 | 107 | 694 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_event.c](/cleonos/third-party/doomgeneric/doomgeneric/d_event.c) | C | 22 | 27 | 15 | 64 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_event.h](/cleonos/third-party/doomgeneric/doomgeneric/d_event.h) | C++ | 43 | 66 | 29 | 138 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_items.c](/cleonos/third-party/doomgeneric/doomgeneric/d_items.c) | C | 77 | 38 | 14 | 129 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_items.h](/cleonos/third-party/doomgeneric/doomgeneric/d_items.h) | C++ | 14 | 18 | 10 | 42 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_iwad.c](/cleonos/third-party/doomgeneric/doomgeneric/d_iwad.c) | C | 509 | 133 | 207 | 849 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_iwad.h](/cleonos/third-party/doomgeneric/doomgeneric/d_iwad.h) | C++ | 28 | 16 | 9 | 53 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_loop.c](/cleonos/third-party/doomgeneric/doomgeneric/d_loop.c) | C | 464 | 169 | 194 | 827 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_loop.h](/cleonos/third-party/doomgeneric/doomgeneric/d_loop.h) | C++ | 23 | 34 | 25 | 82 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_main.c](/cleonos/third-party/doomgeneric/doomgeneric/d_main.c) | C | 1,089 | 418 | 339 | 1,846 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_main.h](/cleonos/third-party/doomgeneric/doomgeneric/d_main.h) | C++ | 11 | 24 | 16 | 51 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_mode.c](/cleonos/third-party/doomgeneric/doomgeneric/d_mode.c) | C | 150 | 28 | 32 | 210 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_mode.h](/cleonos/third-party/doomgeneric/doomgeneric/d_mode.h) | C++ | 58 | 24 | 17 | 99 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_net.c](/cleonos/third-party/doomgeneric/doomgeneric/d_net.c) | C | 158 | 61 | 63 | 282 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_player.h](/cleonos/third-party/doomgeneric/doomgeneric/d_player.h) | C++ | 82 | 77 | 51 | 210 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_textur.h](/cleonos/third-party/doomgeneric/doomgeneric/d_textur.h) | C++ | 10 | 22 | 12 | 44 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_think.h](/cleonos/third-party/doomgeneric/doomgeneric/d_think.h) | C++ | 19 | 29 | 21 | 69 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/d\_ticcmd.h](/cleonos/third-party/doomgeneric/doomgeneric/d_ticcmd.h) | C++ | 17 | 26 | 14 | 57 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/deh\_main.h](/cleonos/third-party/doomgeneric/doomgeneric/deh_main.h) | C++ | 19 | 19 | 11 | 49 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/deh\_misc.h](/cleonos/third-party/doomgeneric/doomgeneric/deh_misc.h) | C++ | 55 | 17 | 12 | 84 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/deh\_str.h](/cleonos/third-party/doomgeneric/doomgeneric/deh_str.h) | C++ | 18 | 17 | 13 | 48 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doom.h](/cleonos/third-party/doomgeneric/doomgeneric/doom.h) | C++ | 4 | 27 | 12 | 43 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomdata.h](/cleonos/third-party/doomgeneric/doomgeneric/doomdata.h) | C++ | 93 | 70 | 51 | 214 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomdef.c](/cleonos/third-party/doomgeneric/doomgeneric/doomdef.c) | C | 1 | 20 | 8 | 29 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomdef.h](/cleonos/third-party/doomgeneric/doomgeneric/doomdef.h) | C++ | 86 | 48 | 35 | 169 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomfeatures.h](/cleonos/third-party/doomgeneric/doomgeneric/doomfeatures.h) | C++ | 6 | 22 | 13 | 41 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric.c) | C | 15 | 1 | 12 | 28 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric.h](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric.h) | C++ | 31 | 1 | 18 | 50 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric.vcxproj](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric.vcxproj) | XML | 339 | 0 | 0 | 339 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric\_allegro.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric_allegro.c) | C | 319 | 16 | 119 | 454 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric\_emscripten.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric_emscripten.c) | C | 184 | 5 | 31 | 220 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric\_linuxvt.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric_linuxvt.c) | C | 412 | 39 | 78 | 529 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric\_sdl.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric_sdl.c) | C | 173 | 9 | 29 | 211 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric\_soso.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric_soso.c) | C | 217 | 6 | 54 | 277 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric\_sosox.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric_sosox.c) | C | 197 | 3 | 48 | 248 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric\_win.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric_win.c) | C | 171 | 2 | 37 | 210 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomgeneric\_xlib.c](/cleonos/third-party/doomgeneric/doomgeneric/doomgeneric_xlib.c) | C | 161 | 7 | 46 | 214 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomkeys.h](/cleonos/third-party/doomgeneric/doomgeneric/doomkeys.h) | C++ | 61 | 23 | 14 | 98 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomstat.c](/cleonos/third-party/doomgeneric/doomgeneric/doomstat.c) | C | 7 | 19 | 10 | 36 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomstat.h](/cleonos/third-party/doomgeneric/doomgeneric/doomstat.h) | C++ | 77 | 108 | 97 | 282 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/doomtype.h](/cleonos/third-party/doomgeneric/doomgeneric/doomtype.h) | C++ | 40 | 35 | 30 | 105 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/dstrings.c](/cleonos/third-party/doomgeneric/doomgeneric/dstrings.c) | C | 37 | 22 | 15 | 74 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/dstrings.h](/cleonos/third-party/doomgeneric/doomgeneric/dstrings.h) | C++ | 8 | 22 | 12 | 42 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/dummy.c](/cleonos/third-party/doomgeneric/doomgeneric/dummy.c) | C | 8 | 30 | 16 | 54 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/f\_finale.c](/cleonos/third-party/doomgeneric/doomgeneric/f_finale.c) | C | 528 | 77 | 114 | 719 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/f\_finale.h](/cleonos/third-party/doomgeneric/doomgeneric/f_finale.h) | C++ | 9 | 23 | 14 | 46 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/f\_wipe.c](/cleonos/third-party/doomgeneric/doomgeneric/f_wipe.c) | C | 220 | 31 | 44 | 295 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/f\_wipe.h](/cleonos/third-party/doomgeneric/doomgeneric/f_wipe.h) | C++ | 29 | 22 | 13 | 64 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/g\_game.c](/cleonos/third-party/doomgeneric/doomgeneric/g_game.c) | C | 1,572 | 319 | 413 | 2,304 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/g\_game.h](/cleonos/third-party/doomgeneric/doomgeneric/g_game.h) | C++ | 29 | 28 | 24 | 81 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/gusconf.c](/cleonos/third-party/doomgeneric/doomgeneric/gusconf.c) | C | 190 | 24 | 58 | 272 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/gusconf.h](/cleonos/third-party/doomgeneric/doomgeneric/gusconf.h) | C++ | 7 | 16 | 7 | 30 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/hu\_lib.c](/cleonos/third-party/doomgeneric/doomgeneric/hu_lib.c) | C | 252 | 32 | 64 | 348 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/hu\_lib.h](/cleonos/third-party/doomgeneric/doomgeneric/hu_lib.h) | C++ | 77 | 59 | 47 | 183 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/hu\_stuff.c](/cleonos/third-party/doomgeneric/doomgeneric/hu_stuff.c) | C | 493 | 51 | 98 | 642 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/hu\_stuff.h](/cleonos/third-party/doomgeneric/doomgeneric/hu_stuff.h) | C++ | 21 | 23 | 16 | 60 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_allegromusic.c](/cleonos/third-party/doomgeneric/doomgeneric/i_allegromusic.c) | C | 192 | 38 | 79 | 309 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_allegrosound.c](/cleonos/third-party/doomgeneric/doomgeneric/i_allegrosound.c) | C | 255 | 73 | 106 | 434 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_cdmus.c](/cleonos/third-party/doomgeneric/doomgeneric/i_cdmus.c) | C | 159 | 31 | 54 | 244 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_cdmus.h](/cleonos/third-party/doomgeneric/doomgeneric/i_cdmus.h) | C++ | 20 | 15 | 7 | 42 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_endoom.c](/cleonos/third-party/doomgeneric/doomgeneric/i_endoom.c) | C | 48 | 26 | 28 | 102 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_endoom.h](/cleonos/third-party/doomgeneric/doomgeneric/i_endoom.h) | C++ | 4 | 19 | 7 | 30 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_input.c](/cleonos/third-party/doomgeneric/doomgeneric/i_input.c) | C | 261 | 45 | 36 | 342 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_joystick.c](/cleonos/third-party/doomgeneric/doomgeneric/i_joystick.c) | C | 254 | 38 | 68 | 360 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_joystick.h](/cleonos/third-party/doomgeneric/doomgeneric/i_joystick.h) | C++ | 21 | 33 | 17 | 71 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_scale.c](/cleonos/third-party/doomgeneric/doomgeneric/i_scale.c) | C | 889 | 225 | 339 | 1,453 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_scale.h](/cleonos/third-party/doomgeneric/doomgeneric/i_scale.h) | C++ | 21 | 20 | 13 | 54 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_sdlmusic.c](/cleonos/third-party/doomgeneric/doomgeneric/i_sdlmusic.c) | C | 887 | 177 | 253 | 1,317 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_sdlsound.c](/cleonos/third-party/doomgeneric/doomgeneric/i_sdlsound.c) | C | 616 | 195 | 266 | 1,077 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_sound.c](/cleonos/third-party/doomgeneric/doomgeneric/i_sound.c) | C | 284 | 62 | 75 | 421 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_sound.h](/cleonos/third-party/doomgeneric/doomgeneric/i_sound.h) | C++ | 104 | 71 | 82 | 257 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_swap.h](/cleonos/third-party/doomgeneric/doomgeneric/i_swap.h) | C++ | 34 | 18 | 22 | 74 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_system.c](/cleonos/third-party/doomgeneric/doomgeneric/i_system.c) | C | 347 | 112 | 120 | 579 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_system.h](/cleonos/third-party/doomgeneric/doomgeneric/i_system.h) | C++ | 19 | 37 | 29 | 85 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_timer.c](/cleonos/third-party/doomgeneric/doomgeneric/i_timer.c) | C | 36 | 32 | 29 | 97 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_timer.h](/cleonos/third-party/doomgeneric/doomgeneric/i_timer.h) | C++ | 9 | 23 | 11 | 43 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_video.c](/cleonos/third-party/doomgeneric/doomgeneric/i_video.c) | C | 309 | 74 | 113 | 496 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/i\_video.h](/cleonos/third-party/doomgeneric/doomgeneric/i_video.h) | C++ | 63 | 65 | 48 | 176 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/icon.c](/cleonos/third-party/doomgeneric/doomgeneric/icon.c) | C | 260 | 0 | 3 | 263 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/info.c](/cleonos/third-party/doomgeneric/doomgeneric/info.c) | C | 4,492 | 21 | 150 | 4,663 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/info.h](/cleonos/third-party/doomgeneric/doomgeneric/info.h) | C++ | 1,296 | 21 | 15 | 1,332 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_argv.c](/cleonos/third-party/doomgeneric/doomgeneric/m_argv.c) | C | 150 | 52 | 64 | 266 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_argv.h](/cleonos/third-party/doomgeneric/doomgeneric/m_argv.h) | C++ | 11 | 26 | 13 | 50 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_bbox.c](/cleonos/third-party/doomgeneric/doomgeneric/m_bbox.c) | C | 21 | 20 | 14 | 55 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_bbox.h](/cleonos/third-party/doomgeneric/doomgeneric/m_bbox.h) | C++ | 18 | 19 | 11 | 48 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_cheat.c](/cleonos/third-party/doomgeneric/doomgeneric/m_cheat.c) | C | 38 | 32 | 20 | 90 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_cheat.h](/cleonos/third-party/doomgeneric/doomgeneric/m_cheat.h) | C++ | 24 | 23 | 16 | 63 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_config.c](/cleonos/third-party/doomgeneric/doomgeneric/m_config.c) | C | 615 | 948 | 566 | 2,129 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_config.h](/cleonos/third-party/doomgeneric/doomgeneric/m_config.h) | C++ | 16 | 17 | 7 | 40 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_controls.c](/cleonos/third-party/doomgeneric/doomgeneric/m_controls.c) | C | 269 | 57 | 73 | 399 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_controls.h](/cleonos/third-party/doomgeneric/doomgeneric/m_controls.h) | C++ | 121 | 17 | 31 | 169 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_fixed.c](/cleonos/third-party/doomgeneric/doomgeneric/m_fixed.c) | C | 24 | 21 | 18 | 63 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_fixed.h](/cleonos/third-party/doomgeneric/doomgeneric/m_fixed.h) | C++ | 8 | 20 | 12 | 40 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_menu.c](/cleonos/third-party/doomgeneric/doomgeneric/m_menu.c) | C | 1,502 | 250 | 374 | 2,126 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_menu.h](/cleonos/third-party/doomgeneric/doomgeneric/m_menu.h) | C++ | 11 | 33 | 18 | 62 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_misc.c](/cleonos/third-party/doomgeneric/doomgeneric/m_misc.c) | C | 335 | 87 | 115 | 537 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_misc.h](/cleonos/third-party/doomgeneric/doomgeneric/m_misc.h) | C++ | 27 | 17 | 8 | 52 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_random.c](/cleonos/third-party/doomgeneric/doomgeneric/m_random.c) | C | 37 | 22 | 7 | 66 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/m\_random.h](/cleonos/third-party/doomgeneric/doomgeneric/m_random.h) | C++ | 7 | 21 | 12 | 40 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/memio.c](/cleonos/third-party/doomgeneric/doomgeneric/memio.c) | C | 122 | 27 | 49 | 198 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/memio.h](/cleonos/third-party/doomgeneric/doomgeneric/memio.h) | C++ | 18 | 14 | 7 | 39 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/mus2mid.c](/cleonos/third-party/doomgeneric/doomgeneric/mus2mid.c) | C | 504 | 76 | 158 | 738 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/mus2mid.h](/cleonos/third-party/doomgeneric/doomgeneric/mus2mid.h) | C++ | 6 | 0 | 3 | 9 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_client.h](/cleonos/third-party/doomgeneric/doomgeneric/net_client.h) | C++ | 29 | 15 | 9 | 53 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_dedicated.h](/cleonos/third-party/doomgeneric/doomgeneric/net_dedicated.h) | C++ | 4 | 16 | 6 | 26 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_defs.h](/cleonos/third-party/doomgeneric/doomgeneric/net_defs.h) | C++ | 148 | 46 | 55 | 249 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_gui.h](/cleonos/third-party/doomgeneric/doomgeneric/net_gui.h) | C++ | 5 | 18 | 7 | 30 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_io.h](/cleonos/third-party/doomgeneric/doomgeneric/net_io.h) | C++ | 14 | 16 | 7 | 37 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_loop.h](/cleonos/third-party/doomgeneric/doomgeneric/net_loop.h) | C++ | 6 | 16 | 6 | 28 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_packet.h](/cleonos/third-party/doomgeneric/doomgeneric/net_packet.h) | C++ | 18 | 16 | 11 | 45 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_query.h](/cleonos/third-party/doomgeneric/doomgeneric/net_query.h) | C++ | 19 | 16 | 10 | 45 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_sdl.h](/cleonos/third-party/doomgeneric/doomgeneric/net_sdl.h) | C++ | 5 | 16 | 6 | 27 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/net\_server.h](/cleonos/third-party/doomgeneric/doomgeneric/net_server.h) | C++ | 8 | 21 | 14 | 43 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_ceilng.c](/cleonos/third-party/doomgeneric/doomgeneric/p_ceilng.c) | C | 226 | 47 | 52 | 325 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_doors.c](/cleonos/third-party/doomgeneric/doomgeneric/p_doors.c) | C | 571 | 83 | 125 | 779 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_enemy.c](/cleonos/third-party/doomgeneric/doomgeneric/p_enemy.c) | C | 1,341 | 238 | 428 | 2,007 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_floor.c](/cleonos/third-party/doomgeneric/doomgeneric/p_floor.c) | C | 429 | 54 | 64 | 547 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_inter.c](/cleonos/third-party/doomgeneric/doomgeneric/p_inter.c) | C | 643 | 115 | 165 | 923 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_inter.h](/cleonos/third-party/doomgeneric/doomgeneric/p_inter.h) | C++ | 4 | 17 | 10 | 31 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_lights.c](/cleonos/third-party/doomgeneric/doomgeneric/p_lights.c) | C | 201 | 72 | 78 | 351 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_local.h](/cleonos/third-party/doomgeneric/doomgeneric/p_local.h) | C++ | 155 | 66 | 77 | 298 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_map.c](/cleonos/third-party/doomgeneric/doomgeneric/p_map.c) | C | 828 | 304 | 317 | 1,449 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_maputl.c](/cleonos/third-party/doomgeneric/doomgeneric/p_maputl.c) | C | 651 | 161 | 190 | 1,002 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_mobj.c](/cleonos/third-party/doomgeneric/doomgeneric/p_mobj.c) | C | 654 | 184 | 212 | 1,050 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_mobj.h](/cleonos/third-party/doomgeneric/doomgeneric/p_mobj.h) | C++ | 77 | 161 | 47 | 285 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_plats.c](/cleonos/third-party/doomgeneric/doomgeneric/p_plats.c) | C | 218 | 29 | 58 | 305 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_pspr.c](/cleonos/third-party/doomgeneric/doomgeneric/p_pspr.c) | C | 537 | 173 | 179 | 889 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_pspr.h](/cleonos/third-party/doomgeneric/doomgeneric/p_pspr.h) | C++ | 21 | 35 | 16 | 72 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_saveg.c](/cleonos/third-party/doomgeneric/doomgeneric/p_saveg.c) | C | 975 | 435 | 482 | 1,892 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_saveg.h](/cleonos/third-party/doomgeneric/doomgeneric/p_saveg.h) | C++ | 21 | 24 | 18 | 63 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_setup.c](/cleonos/third-party/doomgeneric/doomgeneric/p_setup.c) | C | 547 | 134 | 175 | 856 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_setup.h](/cleonos/third-party/doomgeneric/doomgeneric/p_setup.h) | C++ | 10 | 19 | 9 | 38 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_sight.c](/cleonos/third-party/doomgeneric/doomgeneric/p_sight.c) | C | 204 | 75 | 72 | 351 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_spec.c](/cleonos/third-party/doomgeneric/doomgeneric/p_spec.c) | C | 908 | 307 | 275 | 1,490 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_spec.h](/cleonos/third-party/doomgeneric/doomgeneric/p_spec.h) | C++ | 380 | 75 | 183 | 638 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_switch.c](/cleonos/third-party/doomgeneric/doomgeneric/p_switch.c) | C | 425 | 111 | 113 | 649 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_telept.c](/cleonos/third-party/doomgeneric/doomgeneric/p_telept.c) | C | 69 | 35 | 30 | 134 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_tick.c](/cleonos/third-party/doomgeneric/doomgeneric/p_tick.c) | C | 63 | 53 | 36 | 152 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_tick.h](/cleonos/third-party/doomgeneric/doomgeneric/p_tick.h) | C++ | 4 | 20 | 10 | 34 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/p\_user.c](/cleonos/third-party/doomgeneric/doomgeneric/p_user.c) | C | 219 | 73 | 88 | 380 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_bsp.c](/cleonos/third-party/doomgeneric/doomgeneric/r_bsp.c) | C | 329 | 122 | 123 | 574 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_bsp.h](/cleonos/third-party/doomgeneric/doomgeneric/r_bsp.h) | C++ | 23 | 19 | 20 | 62 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_data.c](/cleonos/third-party/doomgeneric/doomgeneric/r_data.c) | C | 543 | 167 | 203 | 913 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_data.h](/cleonos/third-party/doomgeneric/doomgeneric/r_data.h) | C++ | 14 | 25 | 13 | 52 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_defs.h](/cleonos/third-party/doomgeneric/doomgeneric/r_defs.h) | C++ | 164 | 155 | 130 | 449 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_draw.c](/cleonos/third-party/doomgeneric/doomgeneric/r_draw.c) | C | 554 | 216 | 206 | 976 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_draw.h](/cleonos/third-party/doomgeneric/doomgeneric/r_draw.h) | C++ | 40 | 33 | 32 | 105 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_local.h](/cleonos/third-party/doomgeneric/doomgeneric/r_local.h) | C++ | 13 | 24 | 9 | 46 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_main.c](/cleonos/third-party/doomgeneric/doomgeneric/r_main.c) | C | 556 | 155 | 181 | 892 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_main.h](/cleonos/third-party/doomgeneric/doomgeneric/r_main.h) | C++ | 72 | 45 | 44 | 161 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_plane.c](/cleonos/third-party/doomgeneric/doomgeneric/r_plane.c) | C | 278 | 84 | 85 | 447 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_plane.h](/cleonos/third-party/doomgeneric/doomgeneric/r_plane.h) | C++ | 37 | 18 | 22 | 77 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_segs.c](/cleonos/third-party/doomgeneric/doomgeneric/r_segs.c) | C | 507 | 103 | 134 | 744 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_segs.h](/cleonos/third-party/doomgeneric/doomgeneric/r_segs.h) | C++ | 8 | 17 | 9 | 34 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_sky.c](/cleonos/third-party/doomgeneric/doomgeneric/r_sky.c) | C | 10 | 31 | 12 | 53 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_sky.h](/cleonos/third-party/doomgeneric/doomgeneric/r_sky.h) | C++ | 8 | 20 | 10 | 38 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_state.h](/cleonos/third-party/doomgeneric/doomgeneric/r_state.h) | C++ | 49 | 36 | 43 | 128 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_things.c](/cleonos/third-party/doomgeneric/doomgeneric/r_things.c) | C | 605 | 171 | 207 | 983 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/r\_things.h](/cleonos/third-party/doomgeneric/doomgeneric/r_things.h) | C++ | 28 | 20 | 18 | 66 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/s\_sound.c](/cleonos/third-party/doomgeneric/doomgeneric/s_sound.c) | C | 431 | 108 | 132 | 671 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/s\_sound.h](/cleonos/third-party/doomgeneric/doomgeneric/s_sound.h) | C++ | 20 | 42 | 28 | 90 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/sha1.c](/cleonos/third-party/doomgeneric/doomgeneric/sha1.c) | C | 239 | 49 | 32 | 320 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/sha1.h](/cleonos/third-party/doomgeneric/doomgeneric/sha1.h) | C++ | 17 | 16 | 8 | 41 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/sounds.c](/cleonos/third-party/doomgeneric/doomgeneric/sounds.c) | C | 192 | 25 | 13 | 230 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/sounds.h](/cleonos/third-party/doomgeneric/doomgeneric/sounds.h) | C++ | 191 | 26 | 11 | 228 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/st\_lib.c](/cleonos/third-party/doomgeneric/doomgeneric/st_lib.c) | C | 186 | 35 | 64 | 285 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/st\_lib.h](/cleonos/third-party/doomgeneric/doomgeneric/st_lib.h) | C++ | 91 | 60 | 59 | 210 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/st\_stuff.c](/cleonos/third-party/doomgeneric/doomgeneric/st_stuff.c) | C | 903 | 216 | 298 | 1,417 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/st\_stuff.h](/cleonos/third-party/doomgeneric/doomgeneric/st_stuff.h) | C++ | 36 | 31 | 23 | 90 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/statdump.c](/cleonos/third-party/doomgeneric/doomgeneric/statdump.c) | C | 239 | 58 | 96 | 393 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/statdump.h](/cleonos/third-party/doomgeneric/doomgeneric/statdump.h) | C++ | 5 | 15 | 4 | 24 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/tables.c](/cleonos/third-party/doomgeneric/doomgeneric/tables.c) | C | 2,173 | 37 | 18 | 2,228 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/tables.h](/cleonos/third-party/doomgeneric/doomgeneric/tables.h) | C++ | 26 | 44 | 27 | 97 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/v\_patch.h](/cleonos/third-party/doomgeneric/doomgeneric/v_patch.h) | C++ | 17 | 25 | 9 | 51 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/v\_video.c](/cleonos/third-party/doomgeneric/doomgeneric/v_video.c) | C | 617 | 139 | 177 | 933 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/v\_video.h](/cleonos/third-party/doomgeneric/doomgeneric/v_video.h) | C++ | 34 | 40 | 35 | 109 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_checksum.c](/cleonos/third-party/doomgeneric/doomgeneric/w_checksum.c) | C | 48 | 21 | 19 | 88 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_checksum.h](/cleonos/third-party/doomgeneric/doomgeneric/w_checksum.h) | C++ | 5 | 17 | 6 | 28 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_file.c](/cleonos/third-party/doomgeneric/doomgeneric/w_file.c) | C | 44 | 32 | 20 | 96 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_file.h](/cleonos/third-party/doomgeneric/doomgeneric/w_file.h) | C++ | 23 | 31 | 25 | 79 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_file\_stdc.c](/cleonos/third-party/doomgeneric/doomgeneric/w_file_stdc.c) | C | 49 | 22 | 26 | 97 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_main.c](/cleonos/third-party/doomgeneric/doomgeneric/w_main.c) | C | 87 | 66 | 46 | 199 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_main.h](/cleonos/third-party/doomgeneric/doomgeneric/w_main.h) | C++ | 4 | 16 | 5 | 25 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_merge.h](/cleonos/third-party/doomgeneric/doomgeneric/w_merge.h) | C++ | 9 | 23 | 13 | 45 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_wad.c](/cleonos/third-party/doomgeneric/doomgeneric/w_wad.c) | C | 353 | 124 | 136 | 613 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/w\_wad.h](/cleonos/third-party/doomgeneric/doomgeneric/w_wad.h) | C++ | 31 | 24 | 24 | 79 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/wi\_stuff.c](/cleonos/third-party/doomgeneric/doomgeneric/wi_stuff.c) | C | 1,215 | 210 | 405 | 1,830 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/wi\_stuff.h](/cleonos/third-party/doomgeneric/doomgeneric/wi_stuff.h) | C++ | 14 | 24 | 11 | 49 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/z\_zone.c](/cleonos/third-party/doomgeneric/doomgeneric/z_zone.c) | C | 278 | 89 | 122 | 489 |
|
||||
| [cleonos/third-party/doomgeneric/doomgeneric/z\_zone.h](/cleonos/third-party/doomgeneric/doomgeneric/z_zone.h) | C++ | 29 | 29 | 16 | 74 |
|
||||
| [clks/arch/aarch64/boot.c](/clks/arch/aarch64/boot.c) | C | -6 | 0 | -1 | -7 |
|
||||
| [clks/arch/aarch64/startup/boot.c](/clks/arch/aarch64/startup/boot.c) | C | 6 | 0 | 1 | 7 |
|
||||
| [clks/arch/x86\_64/boot.c](/clks/arch/x86_64/boot.c) | C | -6 | 0 | -1 | -7 |
|
||||
| [clks/arch/x86\_64/exec\_stack\_call.S](/clks/arch/x86_64/exec_stack_call.S) | Go Assembly | -40 | 0 | -8 | -48 |
|
||||
| [clks/arch/x86\_64/interrupt/interrupt\_stubs.S](/clks/arch/x86_64/interrupt/interrupt_stubs.S) | Go Assembly | 108 | 0 | 12 | 120 |
|
||||
| [clks/arch/x86\_64/interrupt\_stubs.S](/clks/arch/x86_64/interrupt_stubs.S) | Go Assembly | -108 | 0 | -12 | -120 |
|
||||
| [clks/arch/x86\_64/startup/boot.c](/clks/arch/x86_64/startup/boot.c) | C | 6 | 0 | 1 | 7 |
|
||||
| [clks/arch/x86\_64/startup/exec\_stack\_call.S](/clks/arch/x86_64/startup/exec_stack_call.S) | Go Assembly | 40 | 0 | 8 | 48 |
|
||||
| [clks/drivers/audio/pcspeaker.c](/clks/drivers/audio/pcspeaker.c) | C | -101 | 0 | -25 | -126 |
|
||||
| [clks/drivers/serial/serial.c](/clks/drivers/serial/serial.c) | C | -52 | 0 | -16 | -68 |
|
||||
| [clks/drivers/video/font8x8.c](/clks/drivers/video/font8x8.c) | C | -67 | 0 | -8 | -75 |
|
||||
| [clks/drivers/video/font8x8.h](/clks/drivers/video/font8x8.h) | C++ | -5 | 0 | -3 | -8 |
|
||||
| [clks/drivers/video/framebuffer.c](/clks/drivers/video/framebuffer.c) | C | -251 | 0 | -70 | -321 |
|
||||
| [clks/drivers/video/psf\_font.c](/clks/drivers/video/psf_font.c) | C | -230 | 0 | -56 | -286 |
|
||||
| [clks/drivers/video/psf\_font.h](/clks/drivers/video/psf_font.h) | C++ | -15 | 0 | -5 | -20 |
|
||||
| [clks/include/clks/exec.h](/clks/include/clks/exec.h) | C++ | -8 | 0 | 0 | -8 |
|
||||
| [clks/include/clks/keyboard.h](/clks/include/clks/keyboard.h) | C++ | 0 | 0 | -1 | -1 |
|
||||
| [clks/include/clks/limine.h](/clks/include/clks/limine.h) | C++ | -20 | 0 | 0 | -20 |
|
||||
| [clks/include/clks/panic.h](/clks/include/clks/panic.h) | C++ | -5 | 0 | 0 | -5 |
|
||||
| [clks/include/clks/syscall.h](/clks/include/clks/syscall.h) | C++ | 3 | 0 | 0 | 3 |
|
||||
| [clks/include/clks/task.h](/clks/include/clks/task.h) | C++ | -5 | 0 | 0 | -5 |
|
||||
| [clks/include/clks/types.h](/clks/include/clks/types.h) | C++ | -3 | 0 | 0 | -3 |
|
||||
| [clks/kernel/boot/limine/limine\_requests.c](/clks/kernel/boot/limine/limine_requests.c) | C | 76 | 0 | 26 | 102 |
|
||||
| [clks/kernel/core/interrupts.c](/clks/kernel/core/interrupts.c) | C | 307 | 0 | 43 | 350 |
|
||||
| [clks/kernel/core/kmain.c](/clks/kernel/core/kmain.c) | C | 388 | 1 | 77 | 466 |
|
||||
| [clks/kernel/core/log.c](/clks/kernel/core/log.c) | C | 179 | 0 | 48 | 227 |
|
||||
| [clks/kernel/core/panic.c](/clks/kernel/core/panic.c) | C | 527 | 0 | 155 | 682 |
|
||||
| [clks/kernel/core/scheduler.c](/clks/kernel/core/scheduler.c) | C | 136 | 0 | 44 | 180 |
|
||||
| [clks/kernel/core/service.c](/clks/kernel/core/service.c) | C | 107 | 0 | 34 | 141 |
|
||||
| [clks/kernel/desktop.c](/clks/kernel/desktop.c) | C | -321 | 0 | -86 | -407 |
|
||||
| [clks/kernel/driver.c](/clks/kernel/driver.c) | C | -169 | 0 | -49 | -218 |
|
||||
| [clks/kernel/elf64.c](/clks/kernel/elf64.c) | C | -239 | 0 | -73 | -312 |
|
||||
| [clks/kernel/elfrunner.c](/clks/kernel/elfrunner.c) | C | -30 | 0 | -8 | -38 |
|
||||
| [clks/kernel/exec.c](/clks/kernel/exec.c) | C | -2,037 | -1 | -555 | -2,593 |
|
||||
| [clks/kernel/fs.c](/clks/kernel/fs.c) | C | -701 | 0 | -222 | -923 |
|
||||
| [clks/kernel/hal/audio/pcspeaker.c](/clks/kernel/hal/audio/pcspeaker.c) | C | 101 | 0 | 25 | 126 |
|
||||
| [clks/kernel/hal/serial/serial.c](/clks/kernel/hal/serial/serial.c) | C | 51 | 0 | 16 | 67 |
|
||||
| [clks/kernel/hal/video/font8x8.c](/clks/kernel/hal/video/font8x8.c) | C | 45 | 0 | 8 | 53 |
|
||||
| [clks/kernel/hal/video/font8x8.h](/clks/kernel/hal/video/font8x8.h) | C++ | 5 | 0 | 3 | 8 |
|
||||
| [clks/kernel/hal/video/framebuffer.c](/clks/kernel/hal/video/framebuffer.c) | C | 247 | 0 | 69 | 316 |
|
||||
| [clks/kernel/hal/video/psf\_font.c](/clks/kernel/hal/video/psf_font.c) | C | 203 | 0 | 56 | 259 |
|
||||
| [clks/kernel/hal/video/psf\_font.h](/clks/kernel/hal/video/psf_font.h) | C++ | 15 | 0 | 5 | 20 |
|
||||
| [clks/kernel/heap.c](/clks/kernel/heap.c) | C | -134 | 0 | -42 | -176 |
|
||||
| [clks/kernel/input/keyboard.c](/clks/kernel/input/keyboard.c) | C | 370 | 0 | 95 | 465 |
|
||||
| [clks/kernel/input/mouse.c](/clks/kernel/input/mouse.c) | C | 243 | 0 | 63 | 306 |
|
||||
| [clks/kernel/interface/desktop.c](/clks/kernel/interface/desktop.c) | C | 321 | 0 | 86 | 407 |
|
||||
| [clks/kernel/interface/shell.c](/clks/kernel/interface/shell.c) | C | 1,232 | 0 | 316 | 1,548 |
|
||||
| [clks/kernel/interface/tty.c](/clks/kernel/interface/tty.c) | C | 1,137 | 0 | 288 | 1,425 |
|
||||
| [clks/kernel/interrupts.c](/clks/kernel/interrupts.c) | C | -317 | 0 | -44 | -361 |
|
||||
| [clks/kernel/kelf.c](/clks/kernel/kelf.c) | C | -203 | -1 | -53 | -257 |
|
||||
| [clks/kernel/keyboard.c](/clks/kernel/keyboard.c) | C | -379 | 0 | -96 | -475 |
|
||||
| [clks/kernel/kmain.c](/clks/kernel/kmain.c) | C | -388 | -1 | -77 | -466 |
|
||||
| [clks/kernel/limine\_requests.c](/clks/kernel/limine_requests.c) | C | -76 | 0 | -26 | -102 |
|
||||
| [clks/kernel/log.c](/clks/kernel/log.c) | C | -185 | 0 | -48 | -233 |
|
||||
| [clks/kernel/memory/heap.c](/clks/kernel/memory/heap.c) | C | 137 | 0 | 44 | 181 |
|
||||
| [clks/kernel/memory/pmm.c](/clks/kernel/memory/pmm.c) | C | 82 | 0 | 23 | 105 |
|
||||
| [clks/kernel/mouse.c](/clks/kernel/mouse.c) | C | -246 | 0 | -63 | -309 |
|
||||
| [clks/kernel/panic.c](/clks/kernel/panic.c) | C | -546 | 0 | -155 | -701 |
|
||||
| [clks/kernel/pmm.c](/clks/kernel/pmm.c) | C | -82 | 0 | -23 | -105 |
|
||||
| [clks/kernel/ramdisk.c](/clks/kernel/ramdisk.c) | C | -172 | 0 | -50 | -222 |
|
||||
| [clks/kernel/runtime/driver.c](/clks/kernel/runtime/driver.c) | C | 166 | 0 | 49 | 215 |
|
||||
| [clks/kernel/runtime/elf64.c](/clks/kernel/runtime/elf64.c) | C | 279 | 1 | 84 | 364 |
|
||||
| [clks/kernel/runtime/elfrunner.c](/clks/kernel/runtime/elfrunner.c) | C | 30 | 0 | 8 | 38 |
|
||||
| [clks/kernel/runtime/exec.c](/clks/kernel/runtime/exec.c) | C | 2,179 | 1 | 595 | 2,775 |
|
||||
| [clks/kernel/runtime/kelf.c](/clks/kernel/runtime/kelf.c) | C | 198 | 1 | 52 | 251 |
|
||||
| [clks/kernel/runtime/syscall.c](/clks/kernel/runtime/syscall.c) | C | 2,021 | 0 | 507 | 2,528 |
|
||||
| [clks/kernel/runtime/userland.c](/clks/kernel/runtime/userland.c) | C | 146 | 0 | 38 | 184 |
|
||||
| [clks/kernel/scheduler.c](/clks/kernel/scheduler.c) | C | -136 | 0 | -44 | -180 |
|
||||
| [clks/kernel/service.c](/clks/kernel/service.c) | C | -113 | 0 | -34 | -147 |
|
||||
| [clks/kernel/shell.c](/clks/kernel/shell.c) | C | -1,250 | 0 | -317 | -1,567 |
|
||||
| [clks/kernel/storage/fs.c](/clks/kernel/storage/fs.c) | C | 684 | 0 | 222 | 906 |
|
||||
| [clks/kernel/storage/ramdisk.c](/clks/kernel/storage/ramdisk.c) | C | 172 | 0 | 50 | 222 |
|
||||
| [clks/kernel/support/libc\_compat.c](/clks/kernel/support/libc_compat.c) | C | 25 | 0 | 7 | 32 |
|
||||
| [clks/kernel/support/string.c](/clks/kernel/support/string.c) | C | 54 | 0 | 16 | 70 |
|
||||
| [clks/kernel/syscall.c](/clks/kernel/syscall.c) | C | -1,588 | 0 | -401 | -1,989 |
|
||||
| [clks/kernel/tty.c](/clks/kernel/tty.c) | C | -1,188 | 0 | -290 | -1,478 |
|
||||
| [clks/kernel/userland.c](/clks/kernel/userland.c) | C | -145 | 0 | -38 | -183 |
|
||||
| [clks/lib/libc\_compat.c](/clks/lib/libc_compat.c) | C | -25 | 0 | -7 | -32 |
|
||||
| [clks/lib/string.c](/clks/lib/string.c) | C | -54 | 0 | -16 | -70 |
|
||||
| [configs/menuconfig/clks\_features.json](/configs/menuconfig/clks_features.json) | JSON | 180 | 0 | 0 | 180 |
|
||||
| [docs/syscall.md](/docs/syscall.md) | Markdown | 46 | 0 | 14 | 60 |
|
||||
| [limine/.github/dependabot.yml](/limine/.github/dependabot.yml) | YAML | 7 | 0 | 1 | 8 |
|
||||
| [limine/.github/workflows/binary-release.yml](/limine/.github/workflows/binary-release.yml) | YAML | 78 | 0 | 21 | 99 |
|
||||
| [limine/.github/workflows/check.yml](/limine/.github/workflows/check.yml) | YAML | 34 | 0 | 12 | 46 |
|
||||
| [limine/.github/workflows/pr\_branch\_check.yml](/limine/.github/workflows/pr_branch_check.yml) | YAML | 13 | 0 | 3 | 16 |
|
||||
| [limine/.github/workflows/qa.yml](/limine/.github/workflows/qa.yml) | YAML | 14 | 0 | 5 | 19 |
|
||||
| [limine/.github/workflows/release.yml](/limine/.github/workflows/release.yml) | YAML | 64 | 0 | 17 | 81 |
|
||||
| [limine/3RDPARTY.md](/limine/3RDPARTY.md) | Markdown | 53 | 0 | 15 | 68 |
|
||||
| [limine/CONFIG.md](/limine/CONFIG.md) | Markdown | 320 | 0 | 53 | 373 |
|
||||
| [limine/FAQ.md](/limine/FAQ.md) | Markdown | 26 | 0 | 10 | 36 |
|
||||
| [limine/INSTALL.md](/limine/INSTALL.md) | Markdown | 37 | 0 | 15 | 52 |
|
||||
| [limine/README.md](/limine/README.md) | Markdown | 70 | 0 | 33 | 103 |
|
||||
| [limine/USAGE.md](/limine/USAGE.md) | Markdown | 85 | 0 | 23 | 108 |
|
||||
| [limine/common/common.mk](/limine/common/common.mk) | Makefile | 562 | 0 | 115 | 677 |
|
||||
| [limine/common/crypt/blake2b.c](/limine/common/crypt/blake2b.c) | C | 179 | 3 | 39 | 221 |
|
||||
| [limine/common/crypt/blake2b.h](/limine/common/crypt/blake2b.h) | C++ | 6 | 0 | 5 | 11 |
|
||||
| [limine/common/drivers/disk.h](/limine/common/drivers/disk.h) | C++ | 18 | 0 | 9 | 27 |
|
||||
| [limine/common/drivers/disk.s2.c](/limine/common/drivers/disk.s2.c) | C | 646 | 33 | 178 | 857 |
|
||||
| [limine/common/drivers/edid.c](/limine/common/drivers/edid.c) | C | 61 | 0 | 25 | 86 |
|
||||
| [limine/common/drivers/edid.h](/limine/common/drivers/edid.h) | C++ | 37 | 0 | 7 | 44 |
|
||||
| [limine/common/drivers/gop.c](/limine/common/drivers/gop.c) | C | 306 | 3 | 73 | 382 |
|
||||
| [limine/common/drivers/gop.h](/limine/common/drivers/gop.h) | C++ | 13 | 0 | 7 | 20 |
|
||||
| [limine/common/drivers/serial.c](/limine/common/drivers/serial.c) | C | 37 | 1 | 13 | 51 |
|
||||
| [limine/common/drivers/serial.h](/limine/common/drivers/serial.h) | C++ | 9 | 0 | 7 | 16 |
|
||||
| [limine/common/drivers/vbe.c](/limine/common/drivers/vbe.c) | C | 307 | 8 | 53 | 368 |
|
||||
| [limine/common/drivers/vbe.h](/limine/common/drivers/vbe.h) | C++ | 11 | 0 | 5 | 16 |
|
||||
| [limine/common/drivers/vga\_textmode.c](/limine/common/drivers/vga_textmode.c) | C | 294 | 5 | 71 | 370 |
|
||||
| [limine/common/drivers/vga\_textmode.h](/limine/common/drivers/vga_textmode.h) | C++ | 24 | 0 | 12 | 36 |
|
||||
| [limine/common/entry.s2.c](/limine/common/entry.s2.c) | C | 106 | 1 | 28 | 135 |
|
||||
| [limine/common/entry.s3.c](/limine/common/entry.s3.c) | C | 202 | 0 | 47 | 249 |
|
||||
| [limine/common/fs/fat32.h](/limine/common/fs/fat32.h) | C++ | 7 | 0 | 5 | 12 |
|
||||
| [limine/common/fs/fat32.s2.c](/limine/common/fs/fat32.s2.c) | C | 577 | 39 | 111 | 727 |
|
||||
| [limine/common/fs/file.h](/limine/common/fs/file.h) | C++ | 39 | 0 | 7 | 46 |
|
||||
| [limine/common/fs/file.s2.c](/limine/common/fs/file.s2.c) | C | 163 | 0 | 22 | 185 |
|
||||
| [limine/common/fs/iso9660.h](/limine/common/fs/iso9660.h) | C++ | 7 | 0 | 4 | 11 |
|
||||
| [limine/common/fs/iso9660.s2.c](/limine/common/fs/iso9660.s2.c) | C | 407 | 38 | 94 | 539 |
|
||||
| [limine/common/gensyms.sh](/limine/common/gensyms.sh) | Shell Script | 33 | 2 | 17 | 52 |
|
||||
| [limine/common/lib/acpi.c](/limine/common/lib/acpi.c) | C | 344 | 27 | 102 | 473 |
|
||||
| [limine/common/lib/acpi.h](/limine/common/lib/acpi.h) | C++ | 163 | 24 | 30 | 217 |
|
||||
| [limine/common/lib/bli.c](/limine/common/lib/bli.c) | C | 67 | 4 | 20 | 91 |
|
||||
| [limine/common/lib/bli.h](/limine/common/lib/bli.h) | C++ | 7 | 0 | 5 | 12 |
|
||||
| [limine/common/lib/config.c](/limine/common/lib/config.c) | C | 628 | 11 | 126 | 765 |
|
||||
| [limine/common/lib/config.h](/limine/common/lib/config.h) | C++ | 28 | 0 | 9 | 37 |
|
||||
| [limine/common/lib/elf.c](/limine/common/lib/elf.c) | C | 964 | 27 | 212 | 1,203 |
|
||||
| [limine/common/lib/elf.h](/limine/common/lib/elf.h) | C++ | 74 | 0 | 14 | 88 |
|
||||
| [limine/common/lib/elsewhere.c](/limine/common/lib/elsewhere.c) | C | 81 | 7 | 17 | 105 |
|
||||
| [limine/common/lib/elsewhere.h](/limine/common/lib/elsewhere.h) | C++ | 16 | 0 | 5 | 21 |
|
||||
| [limine/common/lib/fb.c](/limine/common/lib/fb.c) | C | 153 | 4 | 17 | 174 |
|
||||
| [limine/common/lib/fb.h](/limine/common/lib/fb.h) | C++ | 36 | 0 | 12 | 48 |
|
||||
| [limine/common/lib/fdt.c](/limine/common/lib/fdt.c) | C | 33 | 0 | 12 | 45 |
|
||||
| [limine/common/lib/fdt.h](/limine/common/lib/fdt.h) | C++ | 10 | 0 | 6 | 16 |
|
||||
| [limine/common/lib/getchar.c](/limine/common/lib/getchar.c) | C | 306 | 1 | 59 | 366 |
|
||||
| [limine/common/lib/getchar.h](/limine/common/lib/getchar.h) | C++ | 23 | 0 | 6 | 29 |
|
||||
| [limine/common/lib/gterm.c](/limine/common/lib/gterm.c) | C | 813 | 9 | 118 | 940 |
|
||||
| [limine/common/lib/gterm.h](/limine/common/lib/gterm.h) | C++ | 29 | 0 | 6 | 35 |
|
||||
| [limine/common/lib/guid.c](/limine/common/lib/guid.c) | C | 82 | 0 | 14 | 96 |
|
||||
| [limine/common/lib/guid.h](/limine/common/lib/guid.h) | C++ | 15 | 1 | 5 | 21 |
|
||||
| [limine/common/lib/image.c](/limine/common/lib/image.c) | C | 52 | 2 | 18 | 72 |
|
||||
| [limine/common/lib/image.h](/limine/common/lib/image.h) | C++ | 27 | 0 | 6 | 33 |
|
||||
| [limine/common/lib/libc.c](/limine/common/lib/libc.c) | C | 114 | 3 | 15 | 132 |
|
||||
| [limine/common/lib/libc.h](/limine/common/lib/libc.h) | C++ | 29 | 0 | 8 | 37 |
|
||||
| [limine/common/lib/libc.s2.c](/limine/common/lib/libc.s2.c) | C | 122 | 2 | 26 | 150 |
|
||||
| [limine/common/lib/macros.aarch64\_asm.h](/limine/common/lib/macros.aarch64_asm.h) | C++ | 44 | 4 | 5 | 53 |
|
||||
| [limine/common/lib/memory.s2.c](/limine/common/lib/memory.s2.c) | C | 41 | 0 | 13 | 54 |
|
||||
| [limine/common/lib/misc.c](/limine/common/lib/misc.c) | C | 322 | 8 | 90 | 420 |
|
||||
| [limine/common/lib/misc.h](/limine/common/lib/misc.h) | C++ | 122 | 0 | 32 | 154 |
|
||||
| [limine/common/lib/misc.s2.c](/limine/common/lib/misc.s2.c) | C | 117 | 0 | 12 | 129 |
|
||||
| [limine/common/lib/panic.s2.c](/limine/common/lib/panic.s2.c) | C | 70 | 8 | 12 | 90 |
|
||||
| [limine/common/lib/part.h](/limine/common/lib/part.h) | C++ | 86 | 2 | 23 | 111 |
|
||||
| [limine/common/lib/part.s2.c](/limine/common/lib/part.s2.c) | C | 464 | 31 | 121 | 616 |
|
||||
| [limine/common/lib/pe.c](/limine/common/lib/pe.c) | C | 398 | 5 | 98 | 501 |
|
||||
| [limine/common/lib/pe.h](/limine/common/lib/pe.h) | C++ | 8 | 0 | 5 | 13 |
|
||||
| [limine/common/lib/print.h](/limine/common/lib/print.h) | C++ | 11 | 0 | 6 | 17 |
|
||||
| [limine/common/lib/print.s2.c](/limine/common/lib/print.s2.c) | C | 200 | 0 | 36 | 236 |
|
||||
| [limine/common/lib/rand.c](/limine/common/lib/rand.c) | C | 112 | 5 | 25 | 142 |
|
||||
| [limine/common/lib/rand.h](/limine/common/lib/rand.h) | C++ | 7 | 0 | 5 | 12 |
|
||||
| [limine/common/lib/real.h](/limine/common/lib/real.h) | C++ | 26 | 0 | 9 | 35 |
|
||||
| [limine/common/lib/stb\_image.c](/limine/common/lib/stb_image.c) | C | 4 | 0 | 3 | 7 |
|
||||
| [limine/common/lib/term.c](/limine/common/lib/term.c) | C | 266 | 5 | 49 | 320 |
|
||||
| [limine/common/lib/term.h](/limine/common/lib/term.h) | C++ | 47 | 0 | 13 | 60 |
|
||||
| [limine/common/lib/time.c](/limine/common/lib/time.c) | C | 59 | 2 | 15 | 76 |
|
||||
| [limine/common/lib/time.h](/limine/common/lib/time.h) | C++ | 5 | 0 | 4 | 9 |
|
||||
| [limine/common/lib/trace.h](/limine/common/lib/trace.h) | C++ | 5 | 0 | 4 | 9 |
|
||||
| [limine/common/lib/trace.s2.c](/limine/common/lib/trace.s2.c) | C | 79 | 0 | 9 | 88 |
|
||||
| [limine/common/lib/uri.c](/limine/common/lib/uri.c) | C | 224 | 9 | 54 | 287 |
|
||||
| [limine/common/lib/uri.h](/limine/common/lib/uri.h) | C++ | 7 | 0 | 4 | 11 |
|
||||
| [limine/common/libc-compat/stdlib.h](/limine/common/libc-compat/stdlib.h) | C++ | 4 | 0 | 3 | 7 |
|
||||
| [limine/common/libc-compat/string.h](/limine/common/libc-compat/string.h) | C++ | 19 | 0 | 5 | 24 |
|
||||
| [limine/common/menu.c](/limine/common/menu.c) | C | 1,378 | 30 | 150 | 1,558 |
|
||||
| [limine/common/menu.h](/limine/common/menu.h) | C++ | 13 | 0 | 8 | 21 |
|
||||
| [limine/common/mm/mtrr.c](/limine/common/mm/mtrr.c) | C | 91 | 18 | 32 | 141 |
|
||||
| [limine/common/mm/mtrr.h](/limine/common/mm/mtrr.h) | C++ | 7 | 0 | 5 | 12 |
|
||||
| [limine/common/mm/pmm.c](/limine/common/mm/pmm.c) | C | 70 | 3 | 16 | 89 |
|
||||
| [limine/common/mm/pmm.h](/limine/common/mm/pmm.h) | C++ | 63 | 0 | 18 | 81 |
|
||||
| [limine/common/mm/pmm.s2.c](/limine/common/mm/pmm.s2.c) | C | 662 | 37 | 192 | 891 |
|
||||
| [limine/common/mm/vmm.c](/limine/common/mm/vmm.c) | C | 416 | 30 | 110 | 556 |
|
||||
| [limine/common/mm/vmm.h](/limine/common/mm/vmm.h) | C++ | 125 | 6 | 45 | 176 |
|
||||
| [limine/common/protos/chainload.c](/limine/common/protos/chainload.c) | C | 283 | 7 | 78 | 368 |
|
||||
| [limine/common/protos/chainload.h](/limine/common/protos/chainload.h) | C++ | 5 | 0 | 4 | 9 |
|
||||
| [limine/common/protos/efi\_boot\_entry.c](/limine/common/protos/efi_boot_entry.c) | C | 94 | 6 | 26 | 126 |
|
||||
| [limine/common/protos/efi\_boot\_entry.h](/limine/common/protos/efi_boot_entry.h) | C++ | 5 | 0 | 4 | 9 |
|
||||
| [limine/common/protos/limine.c](/limine/common/protos/limine.c) | C | 1,523 | 80 | 331 | 1,934 |
|
||||
| [limine/common/protos/limine.h](/limine/common/protos/limine.h) | C++ | 5 | 0 | 4 | 9 |
|
||||
| [limine/common/protos/linux.h](/limine/common/protos/linux.h) | C++ | 59 | 1 | 14 | 74 |
|
||||
| [limine/common/protos/linux\_risc.c](/limine/common/protos/linux_risc.c) | C | 412 | 22 | 99 | 533 |
|
||||
| [limine/common/protos/linux\_x86.c](/limine/common/protos/linux_x86.c) | C | 527 | 41 | 96 | 664 |
|
||||
| [limine/common/protos/multiboot.h](/limine/common/protos/multiboot.h) | C++ | 13 | 0 | 5 | 18 |
|
||||
| [limine/common/protos/multiboot1.c](/limine/common/protos/multiboot1.c) | C | 394 | 14 | 105 | 513 |
|
||||
| [limine/common/protos/multiboot1.h](/limine/common/protos/multiboot1.h) | C++ | 76 | 0 | 25 | 101 |
|
||||
| [limine/common/protos/multiboot2.c](/limine/common/protos/multiboot2.c) | C | 782 | 77 | 182 | 1,041 |
|
||||
| [limine/common/protos/multiboot2.h](/limine/common/protos/multiboot2.h) | C++ | 331 | 30 | 58 | 419 |
|
||||
| [limine/common/pxe/pxe.h](/limine/common/pxe/pxe.h) | C++ | 96 | 0 | 16 | 112 |
|
||||
| [limine/common/pxe/pxe.s2.c](/limine/common/pxe/pxe.s2.c) | C | 53 | 2 | 18 | 73 |
|
||||
| [limine/common/pxe/tftp.h](/limine/common/pxe/tftp.h) | C++ | 36 | 0 | 11 | 47 |
|
||||
| [limine/common/pxe/tftp.s2.c](/limine/common/pxe/tftp.s2.c) | C | 211 | 5 | 52 | 268 |
|
||||
| [limine/common/stb\_image.patch](/limine/common/stb_image.patch) | Diff | 74 | 7 | 10 | 91 |
|
||||
| [limine/common/sys/a20.h](/limine/common/sys/a20.h) | C++ | 6 | 0 | 4 | 10 |
|
||||
| [limine/common/sys/a20.s2.c](/limine/common/sys/a20.s2.c) | C | 67 | 5 | 21 | 93 |
|
||||
| [limine/common/sys/cpu.h](/limine/common/sys/cpu.h) | C++ | 429 | 2 | 82 | 513 |
|
||||
| [limine/common/sys/cpu.s2.c](/limine/common/sys/cpu.s2.c) | C | 58 | 6 | 14 | 78 |
|
||||
| [limine/common/sys/cpu\_riscv.c](/limine/common/sys/cpu_riscv.c) | C | 353 | 10 | 65 | 428 |
|
||||
| [limine/common/sys/e820.h](/limine/common/sys/e820.h) | C++ | 9 | 0 | 5 | 14 |
|
||||
| [limine/common/sys/e820.s2.c](/limine/common/sys/e820.s2.c) | C | 33 | 0 | 12 | 45 |
|
||||
| [limine/common/sys/exceptions.s2.c](/limine/common/sys/exceptions.s2.c) | C | 46 | 0 | 5 | 51 |
|
||||
| [limine/common/sys/gdt.h](/limine/common/sys/gdt.h) | C++ | 23 | 0 | 7 | 30 |
|
||||
| [limine/common/sys/gdt.s2.c](/limine/common/sys/gdt.s2.c) | C | 83 | 0 | 13 | 96 |
|
||||
| [limine/common/sys/idt.c](/limine/common/sys/idt.c) | C | 53 | 3 | 16 | 72 |
|
||||
| [limine/common/sys/idt.h](/limine/common/sys/idt.h) | C++ | 43 | 0 | 17 | 60 |
|
||||
| [limine/common/sys/idt.s2.c](/limine/common/sys/idt.s2.c) | C | 26 | 0 | 10 | 36 |
|
||||
| [limine/common/sys/iommu.c](/limine/common/sys/iommu.c) | C | 94 | 21 | 30 | 145 |
|
||||
| [limine/common/sys/iommu.h](/limine/common/sys/iommu.h) | C++ | 4 | 0 | 3 | 7 |
|
||||
| [limine/common/sys/lapic.c](/limine/common/sys/lapic.c) | C | 420 | 23 | 69 | 512 |
|
||||
| [limine/common/sys/lapic.h](/limine/common/sys/lapic.h) | C++ | 30 | 0 | 9 | 39 |
|
||||
| [limine/common/sys/pic.c](/limine/common/sys/pic.c) | C | 37 | 1 | 11 | 49 |
|
||||
| [limine/common/sys/pic.h](/limine/common/sys/pic.h) | C++ | 8 | 0 | 4 | 12 |
|
||||
| [limine/common/sys/sbi.h](/limine/common/sys/sbi.h) | C++ | 25 | 0 | 8 | 33 |
|
||||
| [limine/common/sys/smp.c](/limine/common/sys/smp.c) | C | 917 | 54 | 259 | 1,230 |
|
||||
| [limine/common/sys/smp.h](/limine/common/sys/smp.h) | C++ | 38 | 0 | 13 | 51 |
|
||||
| [limine/decompressor/decompressor.mk](/limine/decompressor/decompressor.mk) | Makefile | 70 | 0 | 15 | 85 |
|
||||
| [limine/decompressor/main.c](/limine/decompressor/main.c) | C | 31 | 2 | 5 | 38 |
|
||||
| [limine/decompressor/memory.c](/limine/decompressor/memory.c) | C | 41 | 0 | 13 | 54 |
|
||||
| [limine/decompressor/tinf.patch](/limine/decompressor/tinf.patch) | Diff | 42 | 3 | 10 | 55 |
|
||||
| [limine/host/hgen.sh](/limine/host/hgen.sh) | Shell Script | 10 | 1 | 6 | 17 |
|
||||
| [limine/host/host.mk](/limine/host/host.mk) | Makefile | 14 | 0 | 6 | 20 |
|
||||
| [limine/host/limine.c](/limine/host/limine.c) | C | 1,192 | 32 | 225 | 1,449 |
|
||||
| [limine/test.mk](/limine/test.mk) | Makefile | 263 | 0 | 16 | 279 |
|
||||
| [limine/test/e9print.c](/limine/test/e9print.c) | C | 81 | 0 | 18 | 99 |
|
||||
| [limine/test/e9print.h](/limine/test/e9print.h) | C++ | 7 | 0 | 3 | 10 |
|
||||
| [limine/test/limine.c](/limine/test/limine.c) | C | 624 | 0 | 82 | 706 |
|
||||
| [limine/test/limine.conf](/limine/test/limine.conf) | Properties | 40 | 1 | 19 | 60 |
|
||||
| [limine/test/memory.c](/limine/test/memory.c) | C | 40 | 0 | 13 | 53 |
|
||||
| [limine/test/multiboot.c](/limine/test/multiboot.c) | C | 57 | 12 | 24 | 93 |
|
||||
| [limine/test/multiboot2.c](/limine/test/multiboot2.c) | C | 141 | 5 | 36 | 182 |
|
||||
| [limine/test/test.mk](/limine/test/test.mk) | Makefile | 143 | 0 | 21 | 164 |
|
||||
| [limine/version.sh](/limine/version.sh) | Shell Script | 19 | 1 | 10 | 30 |
|
||||
| [scripts/menuconfig.py](/scripts/menuconfig.py) | Python | 622 | 0 | 100 | 722 |
|
||||
| [wine/README.md](/wine/README.md) | Markdown | 4 | 0 | 0 | 4 |
|
||||
| [wine/cleonos\_wine\_lib/constants.py](/wine/cleonos_wine_lib/constants.py) | Python | 36 | 3 | 3 | 42 |
|
||||
| [wine/cleonos\_wine\_lib/runner.py](/wine/cleonos_wine_lib/runner.py) | Python | 469 | 0 | 91 | 560 |
|
||||
| [wine/cleonos\_wine\_lib/state.py](/wine/cleonos_wine_lib/state.py) | Python | 118 | 2 | 31 | 151 |
|
||||
|
||||
[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details
|
||||
505
.VSCodeCounter/2026-04-21_02-41-45/diff.csv
Normal file
505
.VSCodeCounter/2026-04-21_02-41-45/diff.csv
Normal file
@@ -0,0 +1,505 @@
|
||||
"filename", "language", "Markdown", "Python", "C", "C++", "Makefile", "XML", "JSON", "CMake", "Go Assembly", "Shell Script", "Diff", "YAML", "Properties", "comment", "blank", "total"
|
||||
"d:\Projects\C\cleonos\.github\workflows\style-check.yml", "YAML", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 19, 128
|
||||
"d:\Projects\C\cleonos\CMakeLists.txt", "CMake", 0, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 0, 0, 0, 10, 140
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\ansi_main.c", "C", 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\ansitest_main.c", "C", 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 1
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\append_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\bmpview_main.c", "C", 0, 0, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 412
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cat_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cd_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\clear_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cmd_runtime.c", "C", 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cmd_runtime.h", "C++", 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cp_main.c", "C", 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -4
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cut_main.c", "C", 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -5
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\dmesg_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\doom\doom_compat.c", "C", 0, 0, 1196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 1473
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\doom\doom_shim.h", "C++", 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 21
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\doom\doomgeneric_clks.c", "C", 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 201
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\doom_main.c", "C", 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 82
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\exec_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\exit_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\fastfetch_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\fg_main.c", "C", 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\fsstat_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\grep_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\head_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\help_main.c", "C", 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\kbdstat_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\kdbg_main.c", "C", 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\ls_main.c", "C", 0, 0, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -12
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\memstat_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\mkdir_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\mv_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\pid_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\pwd_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\qrcode\qrcodegen.c", "C", 0, 0, 759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 96, 1031
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\qrcode\qrcodegen.h", "C++", 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 34, 364
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\qrcode_main.c", "C", 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 58, 266
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\restart_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\rm_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_cmd.c", "C", 0, 0, -35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, -39
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_external.c", "C", 0, 0, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_input.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_internal.h", "C++", 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -6
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_path.c", "C", 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell_main.c", "C", 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shstat_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shutdown_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\sleep_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\sort_main.c", "C", 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\spawn_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\spin_main.c", "C", 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\stats_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\sysstat_main.c", "C", 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\tail_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\taskstat_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\top_main.c", "C", 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\touch_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\tty_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\uniq_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\userstat_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\wait_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\wavplay_main.c", "C", 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\wc_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\write_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\yield_main.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2
|
||||
"d:\Projects\C\cleonos\cleonos\c\include\cleonos_syscall.h", "C++", 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 19
|
||||
"d:\Projects\C\cleonos\cleonos\c\src\stdio.c", "C", 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 212
|
||||
"d:\Projects\C\cleonos\cleonos\c\src\syscall.c", "C", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\README.md", "Markdown", 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 68
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\Makefile", "Makefile", 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 7, 14, 55
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\am_map.c", "C", 0, 0, 970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 224, 1356
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\am_map.h", "C++", 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 13, 50
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\config.h", "C++", 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, 101
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_englsh.h", "C++", 0, 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 107, 694
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_event.c", "C", 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 15, 64
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_event.h", "C++", 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 29, 138
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_items.c", "C", 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 14, 129
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_items.h", "C++", 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 10, 42
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_iwad.c", "C", 0, 0, 509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 207, 849
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_iwad.h", "C++", 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 9, 53
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_loop.c", "C", 0, 0, 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, 194, 827
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_loop.h", "C++", 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 25, 82
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_main.c", "C", 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 418, 339, 1846
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_main.h", "C++", 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 16, 51
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_mode.c", "C", 0, 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 32, 210
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_mode.h", "C++", 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 17, 99
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_net.c", "C", 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 63, 282
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_player.h", "C++", 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 51, 210
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_textur.h", "C++", 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 12, 44
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_think.h", "C++", 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 21, 69
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_ticcmd.h", "C++", 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 14, 57
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\deh_main.h", "C++", 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 11, 49
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\deh_misc.h", "C++", 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 12, 84
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\deh_str.h", "C++", 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 13, 48
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doom.h", "C++", 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 12, 43
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomdata.h", "C++", 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 51, 214
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomdef.c", "C", 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 8, 29
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomdef.h", "C++", 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 35, 169
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomfeatures.h", "C++", 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 13, 41
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric.c", "C", 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 28
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric.h", "C++", 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 18, 50
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric.vcxproj", "XML", 0, 0, 0, 0, 0, 339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 339
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_allegro.c", "C", 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 119, 454
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_emscripten.c", "C", 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 31, 220
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_linuxvt.c", "C", 0, 0, 412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 78, 529
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_sdl.c", "C", 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 29, 211
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_soso.c", "C", 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 54, 277
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_sosox.c", "C", 0, 0, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 48, 248
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_win.c", "C", 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 37, 210
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_xlib.c", "C", 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 46, 214
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomkeys.h", "C++", 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 14, 98
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomstat.c", "C", 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 10, 36
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomstat.h", "C++", 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 97, 282
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomtype.h", "C++", 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 30, 105
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\dstrings.c", "C", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 15, 74
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\dstrings.h", "C++", 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 12, 42
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\dummy.c", "C", 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 16, 54
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\f_finale.c", "C", 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 114, 719
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\f_finale.h", "C++", 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 14, 46
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\f_wipe.c", "C", 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 44, 295
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\f_wipe.h", "C++", 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 13, 64
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\g_game.c", "C", 0, 0, 1572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 413, 2304
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\g_game.h", "C++", 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 24, 81
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\gusconf.c", "C", 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 58, 272
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\gusconf.h", "C++", 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 7, 30
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\hu_lib.c", "C", 0, 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, 348
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\hu_lib.h", "C++", 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 47, 183
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\hu_stuff.c", "C", 0, 0, 493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 98, 642
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\hu_stuff.h", "C++", 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 16, 60
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_allegromusic.c", "C", 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 79, 309
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_allegrosound.c", "C", 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 106, 434
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_cdmus.c", "C", 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 54, 244
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_cdmus.h", "C++", 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 7, 42
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_endoom.c", "C", 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 28, 102
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_endoom.h", "C++", 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 7, 30
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_input.c", "C", 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 36, 342
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_joystick.c", "C", 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 68, 360
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_joystick.h", "C++", 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 17, 71
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_scale.c", "C", 0, 0, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 339, 1453
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_scale.h", "C++", 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 13, 54
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_sdlmusic.c", "C", 0, 0, 887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 253, 1317
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_sdlsound.c", "C", 0, 0, 616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, 266, 1077
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_sound.c", "C", 0, 0, 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 75, 421
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_sound.h", "C++", 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 82, 257
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_swap.h", "C++", 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 22, 74
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_system.c", "C", 0, 0, 347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 120, 579
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_system.h", "C++", 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 29, 85
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_timer.c", "C", 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 29, 97
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_timer.h", "C++", 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 11, 43
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_video.c", "C", 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 113, 496
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_video.h", "C++", 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 48, 176
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\icon.c", "C", 0, 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 263
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\info.c", "C", 0, 0, 4492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 150, 4663
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\info.h", "C++", 0, 0, 0, 1296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 15, 1332
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_argv.c", "C", 0, 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 64, 266
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_argv.h", "C++", 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 13, 50
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_bbox.c", "C", 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 14, 55
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_bbox.h", "C++", 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 11, 48
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_cheat.c", "C", 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 20, 90
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_cheat.h", "C++", 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 16, 63
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_config.c", "C", 0, 0, 615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 948, 566, 2129
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_config.h", "C++", 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 7, 40
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_controls.c", "C", 0, 0, 269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 73, 399
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_controls.h", "C++", 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 31, 169
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_fixed.c", "C", 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 18, 63
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_fixed.h", "C++", 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 12, 40
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_menu.c", "C", 0, 0, 1502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 374, 2126
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_menu.h", "C++", 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 18, 62
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_misc.c", "C", 0, 0, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 115, 537
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_misc.h", "C++", 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 8, 52
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_random.c", "C", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 7, 66
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_random.h", "C++", 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 12, 40
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\memio.c", "C", 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 49, 198
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\memio.h", "C++", 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 7, 39
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\mus2mid.c", "C", 0, 0, 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 158, 738
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\mus2mid.h", "C++", 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_client.h", "C++", 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 9, 53
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_dedicated.h", "C++", 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 6, 26
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_defs.h", "C++", 0, 0, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 55, 249
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_gui.h", "C++", 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 7, 30
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_io.h", "C++", 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 7, 37
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_loop.h", "C++", 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 6, 28
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_packet.h", "C++", 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 11, 45
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_query.h", "C++", 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 10, 45
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_sdl.h", "C++", 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 6, 27
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_server.h", "C++", 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 14, 43
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_ceilng.c", "C", 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 52, 325
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_doors.c", "C", 0, 0, 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 125, 779
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_enemy.c", "C", 0, 0, 1341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 428, 2007
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_floor.c", "C", 0, 0, 429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 64, 547
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_inter.c", "C", 0, 0, 643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 165, 923
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_inter.h", "C++", 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 10, 31
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_lights.c", "C", 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 78, 351
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_local.h", "C++", 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 77, 298
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_map.c", "C", 0, 0, 828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 317, 1449
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_maputl.c", "C", 0, 0, 651, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 190, 1002
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_mobj.c", "C", 0, 0, 654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 212, 1050
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_mobj.h", "C++", 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 47, 285
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_plats.c", "C", 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 58, 305
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_pspr.c", "C", 0, 0, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 179, 889
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_pspr.h", "C++", 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 16, 72
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_saveg.c", "C", 0, 0, 975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 435, 482, 1892
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_saveg.h", "C++", 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 18, 63
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_setup.c", "C", 0, 0, 547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 175, 856
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_setup.h", "C++", 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 9, 38
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_sight.c", "C", 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 72, 351
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_spec.c", "C", 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 275, 1490
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_spec.h", "C++", 0, 0, 0, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 183, 638
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_switch.c", "C", 0, 0, 425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, 113, 649
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_telept.c", "C", 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 30, 134
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_tick.c", "C", 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 36, 152
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_tick.h", "C++", 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 10, 34
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_user.c", "C", 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 88, 380
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_bsp.c", "C", 0, 0, 329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 123, 574
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_bsp.h", "C++", 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 62
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_data.c", "C", 0, 0, 543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 203, 913
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_data.h", "C++", 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 13, 52
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_defs.h", "C++", 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 130, 449
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_draw.c", "C", 0, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 206, 976
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_draw.h", "C++", 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 32, 105
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_local.h", "C++", 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 9, 46
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_main.c", "C", 0, 0, 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 181, 892
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_main.h", "C++", 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 44, 161
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_plane.c", "C", 0, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 85, 447
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_plane.h", "C++", 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 22, 77
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_segs.c", "C", 0, 0, 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 134, 744
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_segs.h", "C++", 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 9, 34
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_sky.c", "C", 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 12, 53
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_sky.h", "C++", 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 10, 38
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_state.h", "C++", 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 43, 128
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_things.c", "C", 0, 0, 605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 207, 983
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_things.h", "C++", 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 18, 66
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\s_sound.c", "C", 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 132, 671
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\s_sound.h", "C++", 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 28, 90
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\sha1.c", "C", 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 32, 320
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\sha1.h", "C++", 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 8, 41
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\sounds.c", "C", 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 13, 230
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\sounds.h", "C++", 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 11, 228
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\st_lib.c", "C", 0, 0, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 64, 285
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\st_lib.h", "C++", 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 59, 210
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\st_stuff.c", "C", 0, 0, 903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 298, 1417
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\st_stuff.h", "C++", 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 23, 90
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\statdump.c", "C", 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 96, 393
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\statdump.h", "C++", 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 24
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\tables.c", "C", 0, 0, 2173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 18, 2228
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\tables.h", "C++", 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 27, 97
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\v_patch.h", "C++", 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 9, 51
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\v_video.c", "C", 0, 0, 617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 177, 933
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\v_video.h", "C++", 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 35, 109
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_checksum.c", "C", 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 19, 88
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_checksum.h", "C++", 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 6, 28
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_file.c", "C", 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 20, 96
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_file.h", "C++", 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 25, 79
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_file_stdc.c", "C", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 26, 97
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_main.c", "C", 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 46, 199
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_main.h", "C++", 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 5, 25
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_merge.h", "C++", 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 13, 45
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_wad.c", "C", 0, 0, 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 136, 613
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_wad.h", "C++", 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 79
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\wi_stuff.c", "C", 0, 0, 1215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 405, 1830
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\wi_stuff.h", "C++", 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 11, 49
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\z_zone.c", "C", 0, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 122, 489
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\z_zone.h", "C++", 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 16, 74
|
||||
"d:\Projects\C\cleonos\clks\arch\aarch64\boot.c", "C", 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -7
|
||||
"d:\Projects\C\cleonos\clks\arch\aarch64\startup\boot.c", "C", 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7
|
||||
"d:\Projects\C\cleonos\clks\arch\x86_64\boot.c", "C", 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -7
|
||||
"d:\Projects\C\cleonos\clks\arch\x86_64\exec_stack_call.S", "Go Assembly", 0, 0, 0, 0, 0, 0, 0, 0, -40, 0, 0, 0, 0, 0, -8, -48
|
||||
"d:\Projects\C\cleonos\clks\arch\x86_64\interrupt\interrupt_stubs.S", "Go Assembly", 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 12, 120
|
||||
"d:\Projects\C\cleonos\clks\arch\x86_64\interrupt_stubs.S", "Go Assembly", 0, 0, 0, 0, 0, 0, 0, 0, -108, 0, 0, 0, 0, 0, -12, -120
|
||||
"d:\Projects\C\cleonos\clks\arch\x86_64\startup\boot.c", "C", 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7
|
||||
"d:\Projects\C\cleonos\clks\arch\x86_64\startup\exec_stack_call.S", "Go Assembly", 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 8, 48
|
||||
"d:\Projects\C\cleonos\clks\drivers\audio\pcspeaker.c", "C", 0, 0, -101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, -126
|
||||
"d:\Projects\C\cleonos\clks\drivers\serial\serial.c", "C", 0, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, -68
|
||||
"d:\Projects\C\cleonos\clks\drivers\video\font8x8.c", "C", 0, 0, -67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, -75
|
||||
"d:\Projects\C\cleonos\clks\drivers\video\font8x8.h", "C++", 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -8
|
||||
"d:\Projects\C\cleonos\clks\drivers\video\framebuffer.c", "C", 0, 0, -251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -70, -321
|
||||
"d:\Projects\C\cleonos\clks\drivers\video\psf_font.c", "C", 0, 0, -230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -56, -286
|
||||
"d:\Projects\C\cleonos\clks\drivers\video\psf_font.h", "C++", 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -20
|
||||
"d:\Projects\C\cleonos\clks\include\clks\exec.h", "C++", 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8
|
||||
"d:\Projects\C\cleonos\clks\include\clks\keyboard.h", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1
|
||||
"d:\Projects\C\cleonos\clks\include\clks\limine.h", "C++", 0, 0, 0, -20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -20
|
||||
"d:\Projects\C\cleonos\clks\include\clks\panic.h", "C++", 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5
|
||||
"d:\Projects\C\cleonos\clks\include\clks\syscall.h", "C++", 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3
|
||||
"d:\Projects\C\cleonos\clks\include\clks\task.h", "C++", 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5
|
||||
"d:\Projects\C\cleonos\clks\include\clks\types.h", "C++", 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3
|
||||
"d:\Projects\C\cleonos\clks\kernel\boot\limine\limine_requests.c", "C", 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 102
|
||||
"d:\Projects\C\cleonos\clks\kernel\core\interrupts.c", "C", 0, 0, 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 350
|
||||
"d:\Projects\C\cleonos\clks\kernel\core\kmain.c", "C", 0, 0, 388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 77, 466
|
||||
"d:\Projects\C\cleonos\clks\kernel\core\log.c", "C", 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 227
|
||||
"d:\Projects\C\cleonos\clks\kernel\core\panic.c", "C", 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 682
|
||||
"d:\Projects\C\cleonos\clks\kernel\core\scheduler.c", "C", 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 180
|
||||
"d:\Projects\C\cleonos\clks\kernel\core\service.c", "C", 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 141
|
||||
"d:\Projects\C\cleonos\clks\kernel\desktop.c", "C", 0, 0, -321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -86, -407
|
||||
"d:\Projects\C\cleonos\clks\kernel\driver.c", "C", 0, 0, -169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, -218
|
||||
"d:\Projects\C\cleonos\clks\kernel\elf64.c", "C", 0, 0, -239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -73, -312
|
||||
"d:\Projects\C\cleonos\clks\kernel\elfrunner.c", "C", 0, 0, -30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, -38
|
||||
"d:\Projects\C\cleonos\clks\kernel\exec.c", "C", 0, 0, -2037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -555, -2593
|
||||
"d:\Projects\C\cleonos\clks\kernel\fs.c", "C", 0, 0, -701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -222, -923
|
||||
"d:\Projects\C\cleonos\clks\kernel\hal\audio\pcspeaker.c", "C", 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 126
|
||||
"d:\Projects\C\cleonos\clks\kernel\hal\serial\serial.c", "C", 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67
|
||||
"d:\Projects\C\cleonos\clks\kernel\hal\video\font8x8.c", "C", 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 53
|
||||
"d:\Projects\C\cleonos\clks\kernel\hal\video\font8x8.h", "C++", 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8
|
||||
"d:\Projects\C\cleonos\clks\kernel\hal\video\framebuffer.c", "C", 0, 0, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 316
|
||||
"d:\Projects\C\cleonos\clks\kernel\hal\video\psf_font.c", "C", 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 259
|
||||
"d:\Projects\C\cleonos\clks\kernel\hal\video\psf_font.h", "C++", 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 20
|
||||
"d:\Projects\C\cleonos\clks\kernel\heap.c", "C", 0, 0, -134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -42, -176
|
||||
"d:\Projects\C\cleonos\clks\kernel\input\keyboard.c", "C", 0, 0, 370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 465
|
||||
"d:\Projects\C\cleonos\clks\kernel\input\mouse.c", "C", 0, 0, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 306
|
||||
"d:\Projects\C\cleonos\clks\kernel\interface\desktop.c", "C", 0, 0, 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 407
|
||||
"d:\Projects\C\cleonos\clks\kernel\interface\shell.c", "C", 0, 0, 1232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 316, 1548
|
||||
"d:\Projects\C\cleonos\clks\kernel\interface\tty.c", "C", 0, 0, 1137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 288, 1425
|
||||
"d:\Projects\C\cleonos\clks\kernel\interrupts.c", "C", 0, 0, -317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, -361
|
||||
"d:\Projects\C\cleonos\clks\kernel\kelf.c", "C", 0, 0, -203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -53, -257
|
||||
"d:\Projects\C\cleonos\clks\kernel\keyboard.c", "C", 0, 0, -379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -96, -475
|
||||
"d:\Projects\C\cleonos\clks\kernel\kmain.c", "C", 0, 0, -388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -77, -466
|
||||
"d:\Projects\C\cleonos\clks\kernel\limine_requests.c", "C", 0, 0, -76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, -102
|
||||
"d:\Projects\C\cleonos\clks\kernel\log.c", "C", 0, 0, -185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, -233
|
||||
"d:\Projects\C\cleonos\clks\kernel\memory\heap.c", "C", 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 181
|
||||
"d:\Projects\C\cleonos\clks\kernel\memory\pmm.c", "C", 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 105
|
||||
"d:\Projects\C\cleonos\clks\kernel\mouse.c", "C", 0, 0, -246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, -309
|
||||
"d:\Projects\C\cleonos\clks\kernel\panic.c", "C", 0, 0, -546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -155, -701
|
||||
"d:\Projects\C\cleonos\clks\kernel\pmm.c", "C", 0, 0, -82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -23, -105
|
||||
"d:\Projects\C\cleonos\clks\kernel\ramdisk.c", "C", 0, 0, -172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -50, -222
|
||||
"d:\Projects\C\cleonos\clks\kernel\runtime\driver.c", "C", 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 215
|
||||
"d:\Projects\C\cleonos\clks\kernel\runtime\elf64.c", "C", 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 84, 364
|
||||
"d:\Projects\C\cleonos\clks\kernel\runtime\elfrunner.c", "C", 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 38
|
||||
"d:\Projects\C\cleonos\clks\kernel\runtime\exec.c", "C", 0, 0, 2179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 595, 2775
|
||||
"d:\Projects\C\cleonos\clks\kernel\runtime\kelf.c", "C", 0, 0, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 52, 251
|
||||
"d:\Projects\C\cleonos\clks\kernel\runtime\syscall.c", "C", 0, 0, 2021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 507, 2528
|
||||
"d:\Projects\C\cleonos\clks\kernel\runtime\userland.c", "C", 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 184
|
||||
"d:\Projects\C\cleonos\clks\kernel\scheduler.c", "C", 0, 0, -136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -44, -180
|
||||
"d:\Projects\C\cleonos\clks\kernel\service.c", "C", 0, 0, -113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -34, -147
|
||||
"d:\Projects\C\cleonos\clks\kernel\shell.c", "C", 0, 0, -1250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -317, -1567
|
||||
"d:\Projects\C\cleonos\clks\kernel\storage\fs.c", "C", 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 906
|
||||
"d:\Projects\C\cleonos\clks\kernel\storage\ramdisk.c", "C", 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 222
|
||||
"d:\Projects\C\cleonos\clks\kernel\support\libc_compat.c", "C", 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 32
|
||||
"d:\Projects\C\cleonos\clks\kernel\support\string.c", "C", 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 70
|
||||
"d:\Projects\C\cleonos\clks\kernel\syscall.c", "C", 0, 0, -1588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -401, -1989
|
||||
"d:\Projects\C\cleonos\clks\kernel\tty.c", "C", 0, 0, -1188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -290, -1478
|
||||
"d:\Projects\C\cleonos\clks\kernel\userland.c", "C", 0, 0, -145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -38, -183
|
||||
"d:\Projects\C\cleonos\clks\lib\libc_compat.c", "C", 0, 0, -25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, -32
|
||||
"d:\Projects\C\cleonos\clks\lib\string.c", "C", 0, 0, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, -70
|
||||
"d:\Projects\C\cleonos\configs\menuconfig\clks_features.json", "JSON", 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 0, 0, 180
|
||||
"d:\Projects\C\cleonos\docs\syscall.md", "Markdown", 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 60
|
||||
"d:\Projects\C\cleonos\limine\.github\dependabot.yml", "YAML", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 1, 8
|
||||
"d:\Projects\C\cleonos\limine\.github\workflows\binary-release.yml", "YAML", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 21, 99
|
||||
"d:\Projects\C\cleonos\limine\.github\workflows\check.yml", "YAML", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 12, 46
|
||||
"d:\Projects\C\cleonos\limine\.github\workflows\pr_branch_check.yml", "YAML", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 3, 16
|
||||
"d:\Projects\C\cleonos\limine\.github\workflows\qa.yml", "YAML", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 5, 19
|
||||
"d:\Projects\C\cleonos\limine\.github\workflows\release.yml", "YAML", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 17, 81
|
||||
"d:\Projects\C\cleonos\limine\3RDPARTY.md", "Markdown", 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 68
|
||||
"d:\Projects\C\cleonos\limine\CONFIG.md", "Markdown", 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 373
|
||||
"d:\Projects\C\cleonos\limine\FAQ.md", "Markdown", 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 36
|
||||
"d:\Projects\C\cleonos\limine\INSTALL.md", "Markdown", 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 52
|
||||
"d:\Projects\C\cleonos\limine\README.md", "Markdown", 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 103
|
||||
"d:\Projects\C\cleonos\limine\USAGE.md", "Markdown", 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 108
|
||||
"d:\Projects\C\cleonos\limine\common\common.mk", "Makefile", 0, 0, 0, 0, 562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 677
|
||||
"d:\Projects\C\cleonos\limine\common\crypt\blake2b.c", "C", 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 39, 221
|
||||
"d:\Projects\C\cleonos\limine\common\crypt\blake2b.h", "C++", 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 11
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\disk.h", "C++", 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 27
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\disk.s2.c", "C", 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 178, 857
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\edid.c", "C", 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 86
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\edid.h", "C++", 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 44
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\gop.c", "C", 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 73, 382
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\gop.h", "C++", 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 20
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\serial.c", "C", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 13, 51
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\serial.h", "C++", 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 16
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\vbe.c", "C", 0, 0, 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 53, 368
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\vbe.h", "C++", 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 16
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\vga_textmode.c", "C", 0, 0, 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 71, 370
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\vga_textmode.h", "C++", 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 36
|
||||
"d:\Projects\C\cleonos\limine\common\entry.s2.c", "C", 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 28, 135
|
||||
"d:\Projects\C\cleonos\limine\common\entry.s3.c", "C", 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 249
|
||||
"d:\Projects\C\cleonos\limine\common\fs\fat32.h", "C++", 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 12
|
||||
"d:\Projects\C\cleonos\limine\common\fs\fat32.s2.c", "C", 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 111, 727
|
||||
"d:\Projects\C\cleonos\limine\common\fs\file.h", "C++", 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 46
|
||||
"d:\Projects\C\cleonos\limine\common\fs\file.s2.c", "C", 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 185
|
||||
"d:\Projects\C\cleonos\limine\common\fs\iso9660.h", "C++", 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 11
|
||||
"d:\Projects\C\cleonos\limine\common\fs\iso9660.s2.c", "C", 0, 0, 407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 94, 539
|
||||
"d:\Projects\C\cleonos\limine\common\gensyms.sh", "Shell Script", 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 2, 17, 52
|
||||
"d:\Projects\C\cleonos\limine\common\lib\acpi.c", "C", 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 102, 473
|
||||
"d:\Projects\C\cleonos\limine\common\lib\acpi.h", "C++", 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 30, 217
|
||||
"d:\Projects\C\cleonos\limine\common\lib\bli.c", "C", 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 20, 91
|
||||
"d:\Projects\C\cleonos\limine\common\lib\bli.h", "C++", 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 12
|
||||
"d:\Projects\C\cleonos\limine\common\lib\config.c", "C", 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 126, 765
|
||||
"d:\Projects\C\cleonos\limine\common\lib\config.h", "C++", 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 37
|
||||
"d:\Projects\C\cleonos\limine\common\lib\elf.c", "C", 0, 0, 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 212, 1203
|
||||
"d:\Projects\C\cleonos\limine\common\lib\elf.h", "C++", 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 88
|
||||
"d:\Projects\C\cleonos\limine\common\lib\elsewhere.c", "C", 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 17, 105
|
||||
"d:\Projects\C\cleonos\limine\common\lib\elsewhere.h", "C++", 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 21
|
||||
"d:\Projects\C\cleonos\limine\common\lib\fb.c", "C", 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 17, 174
|
||||
"d:\Projects\C\cleonos\limine\common\lib\fb.h", "C++", 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 48
|
||||
"d:\Projects\C\cleonos\limine\common\lib\fdt.c", "C", 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 45
|
||||
"d:\Projects\C\cleonos\limine\common\lib\fdt.h", "C++", 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 16
|
||||
"d:\Projects\C\cleonos\limine\common\lib\getchar.c", "C", 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 59, 366
|
||||
"d:\Projects\C\cleonos\limine\common\lib\getchar.h", "C++", 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 29
|
||||
"d:\Projects\C\cleonos\limine\common\lib\gterm.c", "C", 0, 0, 813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 118, 940
|
||||
"d:\Projects\C\cleonos\limine\common\lib\gterm.h", "C++", 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 35
|
||||
"d:\Projects\C\cleonos\limine\common\lib\guid.c", "C", 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 96
|
||||
"d:\Projects\C\cleonos\limine\common\lib\guid.h", "C++", 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 21
|
||||
"d:\Projects\C\cleonos\limine\common\lib\image.c", "C", 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 18, 72
|
||||
"d:\Projects\C\cleonos\limine\common\lib\image.h", "C++", 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 33
|
||||
"d:\Projects\C\cleonos\limine\common\lib\libc.c", "C", 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 15, 132
|
||||
"d:\Projects\C\cleonos\limine\common\lib\libc.h", "C++", 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 37
|
||||
"d:\Projects\C\cleonos\limine\common\lib\libc.s2.c", "C", 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 26, 150
|
||||
"d:\Projects\C\cleonos\limine\common\lib\macros.aarch64_asm.h", "C++", 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 53
|
||||
"d:\Projects\C\cleonos\limine\common\lib\memory.s2.c", "C", 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 54
|
||||
"d:\Projects\C\cleonos\limine\common\lib\misc.c", "C", 0, 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 90, 420
|
||||
"d:\Projects\C\cleonos\limine\common\lib\misc.h", "C++", 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 154
|
||||
"d:\Projects\C\cleonos\limine\common\lib\misc.s2.c", "C", 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 129
|
||||
"d:\Projects\C\cleonos\limine\common\lib\panic.s2.c", "C", 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 90
|
||||
"d:\Projects\C\cleonos\limine\common\lib\part.h", "C++", 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23, 111
|
||||
"d:\Projects\C\cleonos\limine\common\lib\part.s2.c", "C", 0, 0, 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 121, 616
|
||||
"d:\Projects\C\cleonos\limine\common\lib\pe.c", "C", 0, 0, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 98, 501
|
||||
"d:\Projects\C\cleonos\limine\common\lib\pe.h", "C++", 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13
|
||||
"d:\Projects\C\cleonos\limine\common\lib\print.h", "C++", 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 17
|
||||
"d:\Projects\C\cleonos\limine\common\lib\print.s2.c", "C", 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 236
|
||||
"d:\Projects\C\cleonos\limine\common\lib\rand.c", "C", 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 25, 142
|
||||
"d:\Projects\C\cleonos\limine\common\lib\rand.h", "C++", 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 12
|
||||
"d:\Projects\C\cleonos\limine\common\lib\real.h", "C++", 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 35
|
||||
"d:\Projects\C\cleonos\limine\common\lib\stb_image.c", "C", 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\limine\common\lib\term.c", "C", 0, 0, 266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 49, 320
|
||||
"d:\Projects\C\cleonos\limine\common\lib\term.h", "C++", 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 60
|
||||
"d:\Projects\C\cleonos\limine\common\lib\time.c", "C", 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 15, 76
|
||||
"d:\Projects\C\cleonos\limine\common\lib\time.h", "C++", 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 9
|
||||
"d:\Projects\C\cleonos\limine\common\lib\trace.h", "C++", 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 9
|
||||
"d:\Projects\C\cleonos\limine\common\lib\trace.s2.c", "C", 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 88
|
||||
"d:\Projects\C\cleonos\limine\common\lib\uri.c", "C", 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 54, 287
|
||||
"d:\Projects\C\cleonos\limine\common\lib\uri.h", "C++", 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 11
|
||||
"d:\Projects\C\cleonos\limine\common\libc-compat\stdlib.h", "C++", 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\limine\common\libc-compat\string.h", "C++", 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 24
|
||||
"d:\Projects\C\cleonos\limine\common\menu.c", "C", 0, 0, 1378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 150, 1558
|
||||
"d:\Projects\C\cleonos\limine\common\menu.h", "C++", 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 21
|
||||
"d:\Projects\C\cleonos\limine\common\mm\mtrr.c", "C", 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 32, 141
|
||||
"d:\Projects\C\cleonos\limine\common\mm\mtrr.h", "C++", 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 12
|
||||
"d:\Projects\C\cleonos\limine\common\mm\pmm.c", "C", 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 16, 89
|
||||
"d:\Projects\C\cleonos\limine\common\mm\pmm.h", "C++", 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 81
|
||||
"d:\Projects\C\cleonos\limine\common\mm\pmm.s2.c", "C", 0, 0, 662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 192, 891
|
||||
"d:\Projects\C\cleonos\limine\common\mm\vmm.c", "C", 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 110, 556
|
||||
"d:\Projects\C\cleonos\limine\common\mm\vmm.h", "C++", 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 45, 176
|
||||
"d:\Projects\C\cleonos\limine\common\protos\chainload.c", "C", 0, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 78, 368
|
||||
"d:\Projects\C\cleonos\limine\common\protos\chainload.h", "C++", 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 9
|
||||
"d:\Projects\C\cleonos\limine\common\protos\efi_boot_entry.c", "C", 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 26, 126
|
||||
"d:\Projects\C\cleonos\limine\common\protos\efi_boot_entry.h", "C++", 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 9
|
||||
"d:\Projects\C\cleonos\limine\common\protos\limine.c", "C", 0, 0, 1523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 331, 1934
|
||||
"d:\Projects\C\cleonos\limine\common\protos\limine.h", "C++", 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 9
|
||||
"d:\Projects\C\cleonos\limine\common\protos\linux.h", "C++", 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 14, 74
|
||||
"d:\Projects\C\cleonos\limine\common\protos\linux_risc.c", "C", 0, 0, 412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 99, 533
|
||||
"d:\Projects\C\cleonos\limine\common\protos\linux_x86.c", "C", 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 96, 664
|
||||
"d:\Projects\C\cleonos\limine\common\protos\multiboot.h", "C++", 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 18
|
||||
"d:\Projects\C\cleonos\limine\common\protos\multiboot1.c", "C", 0, 0, 394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 105, 513
|
||||
"d:\Projects\C\cleonos\limine\common\protos\multiboot1.h", "C++", 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 101
|
||||
"d:\Projects\C\cleonos\limine\common\protos\multiboot2.c", "C", 0, 0, 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 182, 1041
|
||||
"d:\Projects\C\cleonos\limine\common\protos\multiboot2.h", "C++", 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 58, 419
|
||||
"d:\Projects\C\cleonos\limine\common\pxe\pxe.h", "C++", 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 112
|
||||
"d:\Projects\C\cleonos\limine\common\pxe\pxe.s2.c", "C", 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 18, 73
|
||||
"d:\Projects\C\cleonos\limine\common\pxe\tftp.h", "C++", 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 47
|
||||
"d:\Projects\C\cleonos\limine\common\pxe\tftp.s2.c", "C", 0, 0, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 52, 268
|
||||
"d:\Projects\C\cleonos\limine\common\stb_image.patch", "Diff", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 7, 10, 91
|
||||
"d:\Projects\C\cleonos\limine\common\sys\a20.h", "C++", 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10
|
||||
"d:\Projects\C\cleonos\limine\common\sys\a20.s2.c", "C", 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 21, 93
|
||||
"d:\Projects\C\cleonos\limine\common\sys\cpu.h", "C++", 0, 0, 0, 429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 82, 513
|
||||
"d:\Projects\C\cleonos\limine\common\sys\cpu.s2.c", "C", 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 14, 78
|
||||
"d:\Projects\C\cleonos\limine\common\sys\cpu_riscv.c", "C", 0, 0, 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 65, 428
|
||||
"d:\Projects\C\cleonos\limine\common\sys\e820.h", "C++", 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 14
|
||||
"d:\Projects\C\cleonos\limine\common\sys\e820.s2.c", "C", 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 45
|
||||
"d:\Projects\C\cleonos\limine\common\sys\exceptions.s2.c", "C", 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 51
|
||||
"d:\Projects\C\cleonos\limine\common\sys\gdt.h", "C++", 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 30
|
||||
"d:\Projects\C\cleonos\limine\common\sys\gdt.s2.c", "C", 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 96
|
||||
"d:\Projects\C\cleonos\limine\common\sys\idt.c", "C", 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 16, 72
|
||||
"d:\Projects\C\cleonos\limine\common\sys\idt.h", "C++", 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 60
|
||||
"d:\Projects\C\cleonos\limine\common\sys\idt.s2.c", "C", 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 36
|
||||
"d:\Projects\C\cleonos\limine\common\sys\iommu.c", "C", 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 30, 145
|
||||
"d:\Projects\C\cleonos\limine\common\sys\iommu.h", "C++", 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\limine\common\sys\lapic.c", "C", 0, 0, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 69, 512
|
||||
"d:\Projects\C\cleonos\limine\common\sys\lapic.h", "C++", 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 39
|
||||
"d:\Projects\C\cleonos\limine\common\sys\pic.c", "C", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 11, 49
|
||||
"d:\Projects\C\cleonos\limine\common\sys\pic.h", "C++", 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 12
|
||||
"d:\Projects\C\cleonos\limine\common\sys\sbi.h", "C++", 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 33
|
||||
"d:\Projects\C\cleonos\limine\common\sys\smp.c", "C", 0, 0, 917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 259, 1230
|
||||
"d:\Projects\C\cleonos\limine\common\sys\smp.h", "C++", 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 51
|
||||
"d:\Projects\C\cleonos\limine\decompressor\decompressor.mk", "Makefile", 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 85
|
||||
"d:\Projects\C\cleonos\limine\decompressor\main.c", "C", 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 38
|
||||
"d:\Projects\C\cleonos\limine\decompressor\memory.c", "C", 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 54
|
||||
"d:\Projects\C\cleonos\limine\decompressor\tinf.patch", "Diff", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 3, 10, 55
|
||||
"d:\Projects\C\cleonos\limine\host\hgen.sh", "Shell Script", 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 1, 6, 17
|
||||
"d:\Projects\C\cleonos\limine\host\host.mk", "Makefile", 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20
|
||||
"d:\Projects\C\cleonos\limine\host\limine.c", "C", 0, 0, 1192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 225, 1449
|
||||
"d:\Projects\C\cleonos\limine\test.mk", "Makefile", 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 279
|
||||
"d:\Projects\C\cleonos\limine\test\e9print.c", "C", 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 99
|
||||
"d:\Projects\C\cleonos\limine\test\e9print.h", "C++", 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 10
|
||||
"d:\Projects\C\cleonos\limine\test\limine.c", "C", 0, 0, 624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 706
|
||||
"d:\Projects\C\cleonos\limine\test\limine.conf", "Properties", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 1, 19, 60
|
||||
"d:\Projects\C\cleonos\limine\test\memory.c", "C", 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 53
|
||||
"d:\Projects\C\cleonos\limine\test\multiboot.c", "C", 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 24, 93
|
||||
"d:\Projects\C\cleonos\limine\test\multiboot2.c", "C", 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 36, 182
|
||||
"d:\Projects\C\cleonos\limine\test\test.mk", "Makefile", 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 164
|
||||
"d:\Projects\C\cleonos\limine\version.sh", "Shell Script", 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 1, 10, 30
|
||||
"d:\Projects\C\cleonos\scripts\menuconfig.py", "Python", 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 722
|
||||
"d:\Projects\C\cleonos\wine\README.md", "Markdown", 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\constants.py", "Python", 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 42
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\runner.py", "Python", 0, 469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 560
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\state.py", "Python", 0, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 31, 151
|
||||
"Total", "-", 692, 1245, 65649, 7861, 1086, 339, 180, 130, 0, 62, 116, 319, 40, 13900, 20413, 112032
|
||||
|
106
.VSCodeCounter/2026-04-21_02-41-45/diff.md
Normal file
106
.VSCodeCounter/2026-04-21_02-41-45/diff.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# Diff Summary
|
||||
|
||||
Date : 2026-04-21 02:41:45
|
||||
|
||||
Directory d:\\Projects\\C\\cleonos
|
||||
|
||||
Total : 503 files, 77719 codes, 13900 comments, 20413 blanks, all 112032 lines
|
||||
|
||||
[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md)
|
||||
|
||||
## Languages
|
||||
| language | files | code | comment | blank | total |
|
||||
| :--- | ---: | ---: | ---: | ---: | ---: |
|
||||
| C | 292 | 65,649 | 10,478 | 16,613 | 92,740 |
|
||||
| C++ | 172 | 7,861 | 3,395 | 3,048 | 14,304 |
|
||||
| Python | 4 | 1,245 | 5 | 225 | 1,475 |
|
||||
| Makefile | 6 | 1,086 | 7 | 187 | 1,280 |
|
||||
| Markdown | 9 | 692 | 0 | 180 | 872 |
|
||||
| XML | 1 | 339 | 0 | 0 | 339 |
|
||||
| YAML | 7 | 319 | 0 | 78 | 397 |
|
||||
| JSON | 1 | 180 | 0 | 0 | 180 |
|
||||
| CMake | 1 | 130 | 0 | 10 | 140 |
|
||||
| Diff | 2 | 116 | 10 | 20 | 146 |
|
||||
| Shell Script | 3 | 62 | 4 | 33 | 99 |
|
||||
| Properties | 1 | 40 | 1 | 19 | 60 |
|
||||
| Go Assembly | 4 | 0 | 0 | 0 | 0 |
|
||||
|
||||
## Directories
|
||||
| path | files | code | comment | blank | total |
|
||||
| :--- | ---: | ---: | ---: | ---: | ---: |
|
||||
| . | 503 | 77,719 | 13,900 | 20,413 | 112,032 |
|
||||
| . (Files) | 1 | 130 | 0 | 10 | 140 |
|
||||
| .github | 1 | 109 | 0 | 19 | 128 |
|
||||
| .github\\workflows | 1 | 109 | 0 | 19 | 128 |
|
||||
| cleonos | 261 | 50,389 | 12,962 | 14,396 | 77,747 |
|
||||
| cleonos\\c | 66 | 2,981 | 446 | 571 | 3,998 |
|
||||
| cleonos\\c\\apps | 63 | 2,787 | 446 | 532 | 3,765 |
|
||||
| cleonos\\c\\apps (Files) | 53 | 649 | 1 | 80 | 730 |
|
||||
| cleonos\\c\\apps\\doom | 3 | 1,366 | 1 | 328 | 1,695 |
|
||||
| cleonos\\c\\apps\\qrcode | 2 | 821 | 444 | 130 | 1,395 |
|
||||
| cleonos\\c\\apps\\shell | 5 | -49 | 0 | -6 | -55 |
|
||||
| cleonos\\c\\include | 1 | 17 | 0 | 2 | 19 |
|
||||
| cleonos\\c\\src | 2 | 177 | 0 | 37 | 214 |
|
||||
| cleonos\\third-party | 195 | 47,408 | 12,516 | 13,825 | 73,749 |
|
||||
| cleonos\\third-party\\doomgeneric | 195 | 47,408 | 12,516 | 13,825 | 73,749 |
|
||||
| cleonos\\third-party\\doomgeneric (Files) | 1 | 51 | 0 | 17 | 68 |
|
||||
| cleonos\\third-party\\doomgeneric\\doomgeneric | 194 | 47,357 | 12,516 | 13,808 | 73,681 |
|
||||
| clks | 79 | 380 | 1 | 151 | 532 |
|
||||
| clks\\arch | 8 | 0 | 0 | 0 | 0 |
|
||||
| clks\\arch\\aarch64 | 2 | 0 | 0 | 0 | 0 |
|
||||
| clks\\arch\\aarch64 (Files) | 1 | -6 | 0 | -1 | -7 |
|
||||
| clks\\arch\\aarch64\\startup | 1 | 6 | 0 | 1 | 7 |
|
||||
| clks\\arch\\x86_64 | 6 | 0 | 0 | 0 | 0 |
|
||||
| clks\\arch\\x86_64 (Files) | 3 | -154 | 0 | -21 | -175 |
|
||||
| clks\\arch\\x86_64\\interrupt | 1 | 108 | 0 | 12 | 120 |
|
||||
| clks\\arch\\x86_64\\startup | 2 | 46 | 0 | 9 | 55 |
|
||||
| clks\\drivers | 7 | -721 | 0 | -183 | -904 |
|
||||
| clks\\drivers\\audio | 1 | -101 | 0 | -25 | -126 |
|
||||
| clks\\drivers\\serial | 1 | -52 | 0 | -16 | -68 |
|
||||
| clks\\drivers\\video | 5 | -568 | 0 | -142 | -710 |
|
||||
| clks\\include | 7 | -38 | 0 | -1 | -39 |
|
||||
| clks\\include\\clks | 7 | -38 | 0 | -1 | -39 |
|
||||
| clks\\kernel | 55 | 1,218 | 1 | 358 | 1,577 |
|
||||
| clks\\kernel (Files) | 23 | -10,645 | -3 | -2,794 | -13,442 |
|
||||
| clks\\kernel\\boot | 1 | 76 | 0 | 26 | 102 |
|
||||
| clks\\kernel\\boot\\limine | 1 | 76 | 0 | 26 | 102 |
|
||||
| clks\\kernel\\core | 6 | 1,644 | 1 | 401 | 2,046 |
|
||||
| clks\\kernel\\hal | 7 | 667 | 0 | 182 | 849 |
|
||||
| clks\\kernel\\hal\\audio | 1 | 101 | 0 | 25 | 126 |
|
||||
| clks\\kernel\\hal\\serial | 1 | 51 | 0 | 16 | 67 |
|
||||
| clks\\kernel\\hal\\video | 5 | 515 | 0 | 141 | 656 |
|
||||
| clks\\kernel\\input | 2 | 613 | 0 | 158 | 771 |
|
||||
| clks\\kernel\\interface | 3 | 2,690 | 0 | 690 | 3,380 |
|
||||
| clks\\kernel\\memory | 2 | 219 | 0 | 67 | 286 |
|
||||
| clks\\kernel\\runtime | 7 | 5,019 | 3 | 1,333 | 6,355 |
|
||||
| clks\\kernel\\storage | 2 | 856 | 0 | 272 | 1,128 |
|
||||
| clks\\kernel\\support | 2 | 79 | 0 | 23 | 102 |
|
||||
| clks\\lib | 2 | -79 | 0 | -23 | -102 |
|
||||
| configs | 1 | 180 | 0 | 0 | 180 |
|
||||
| configs\\menuconfig | 1 | 180 | 0 | 0 | 180 |
|
||||
| docs | 1 | 46 | 0 | 14 | 60 |
|
||||
| limine | 154 | 25,236 | 932 | 5,598 | 31,766 |
|
||||
| limine (Files) | 8 | 873 | 1 | 175 | 1,049 |
|
||||
| limine\\.github | 6 | 210 | 0 | 59 | 269 |
|
||||
| limine\\.github (Files) | 1 | 7 | 0 | 1 | 8 |
|
||||
| limine\\.github\\workflows | 5 | 203 | 0 | 58 | 261 |
|
||||
| limine\\common | 125 | 21,620 | 875 | 4,868 | 27,363 |
|
||||
| limine\\common (Files) | 7 | 2,368 | 40 | 375 | 2,783 |
|
||||
| limine\\common\\crypt | 2 | 185 | 3 | 44 | 232 |
|
||||
| limine\\common\\drivers | 12 | 1,763 | 50 | 460 | 2,273 |
|
||||
| limine\\common\\fs | 6 | 1,200 | 77 | 243 | 1,520 |
|
||||
| limine\\common\\lib | 49 | 6,940 | 201 | 1,515 | 8,656 |
|
||||
| limine\\common\\libc-compat | 2 | 23 | 0 | 8 | 31 |
|
||||
| limine\\common\\mm | 7 | 1,434 | 94 | 418 | 1,946 |
|
||||
| limine\\common\\protos | 14 | 4,509 | 278 | 1,031 | 5,818 |
|
||||
| limine\\common\\pxe | 4 | 396 | 7 | 97 | 500 |
|
||||
| limine\\common\\sys | 22 | 2,802 | 125 | 677 | 3,604 |
|
||||
| limine\\decompressor | 4 | 184 | 5 | 43 | 232 |
|
||||
| limine\\host | 3 | 1,216 | 33 | 237 | 1,486 |
|
||||
| limine\\test | 8 | 1,133 | 18 | 216 | 1,367 |
|
||||
| scripts | 1 | 622 | 0 | 100 | 722 |
|
||||
| wine | 4 | 627 | 5 | 125 | 757 |
|
||||
| wine (Files) | 1 | 4 | 0 | 0 | 4 |
|
||||
| wine\\cleonos_wine_lib | 3 | 623 | 5 | 125 | 753 |
|
||||
|
||||
[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md)
|
||||
612
.VSCodeCounter/2026-04-21_02-41-45/diff.txt
Normal file
612
.VSCodeCounter/2026-04-21_02-41-45/diff.txt
Normal file
@@ -0,0 +1,612 @@
|
||||
Date : 2026-04-21 02:41:45
|
||||
Directory : d:\Projects\C\cleonos
|
||||
Total : 503 files, 77719 codes, 13900 comments, 20413 blanks, all 112032 lines
|
||||
|
||||
Languages
|
||||
+--------------+------------+------------+------------+------------+------------+
|
||||
| language | files | code | comment | blank | total |
|
||||
+--------------+------------+------------+------------+------------+------------+
|
||||
| C | 292 | 65,649 | 10,478 | 16,613 | 92,740 |
|
||||
| C++ | 172 | 7,861 | 3,395 | 3,048 | 14,304 |
|
||||
| Python | 4 | 1,245 | 5 | 225 | 1,475 |
|
||||
| Makefile | 6 | 1,086 | 7 | 187 | 1,280 |
|
||||
| Markdown | 9 | 692 | 0 | 180 | 872 |
|
||||
| XML | 1 | 339 | 0 | 0 | 339 |
|
||||
| YAML | 7 | 319 | 0 | 78 | 397 |
|
||||
| JSON | 1 | 180 | 0 | 0 | 180 |
|
||||
| CMake | 1 | 130 | 0 | 10 | 140 |
|
||||
| Diff | 2 | 116 | 10 | 20 | 146 |
|
||||
| Shell Script | 3 | 62 | 4 | 33 | 99 |
|
||||
| Properties | 1 | 40 | 1 | 19 | 60 |
|
||||
| Go Assembly | 4 | 0 | 0 | 0 | 0 |
|
||||
+--------------+------------+------------+------------+------------+------------+
|
||||
|
||||
Directories
|
||||
+--------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||
| path | files | code | comment | blank | total |
|
||||
+--------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||
| . | 503 | 77,719 | 13,900 | 20,413 | 112,032 |
|
||||
| . (Files) | 1 | 130 | 0 | 10 | 140 |
|
||||
| .github | 1 | 109 | 0 | 19 | 128 |
|
||||
| .github\workflows | 1 | 109 | 0 | 19 | 128 |
|
||||
| cleonos | 261 | 50,389 | 12,962 | 14,396 | 77,747 |
|
||||
| cleonos\c | 66 | 2,981 | 446 | 571 | 3,998 |
|
||||
| cleonos\c\apps | 63 | 2,787 | 446 | 532 | 3,765 |
|
||||
| cleonos\c\apps (Files) | 53 | 649 | 1 | 80 | 730 |
|
||||
| cleonos\c\apps\doom | 3 | 1,366 | 1 | 328 | 1,695 |
|
||||
| cleonos\c\apps\qrcode | 2 | 821 | 444 | 130 | 1,395 |
|
||||
| cleonos\c\apps\shell | 5 | -49 | 0 | -6 | -55 |
|
||||
| cleonos\c\include | 1 | 17 | 0 | 2 | 19 |
|
||||
| cleonos\c\src | 2 | 177 | 0 | 37 | 214 |
|
||||
| cleonos\third-party | 195 | 47,408 | 12,516 | 13,825 | 73,749 |
|
||||
| cleonos\third-party\doomgeneric | 195 | 47,408 | 12,516 | 13,825 | 73,749 |
|
||||
| cleonos\third-party\doomgeneric (Files) | 1 | 51 | 0 | 17 | 68 |
|
||||
| cleonos\third-party\doomgeneric\doomgeneric | 194 | 47,357 | 12,516 | 13,808 | 73,681 |
|
||||
| clks | 79 | 380 | 1 | 151 | 532 |
|
||||
| clks\arch | 8 | 0 | 0 | 0 | 0 |
|
||||
| clks\arch\aarch64 | 2 | 0 | 0 | 0 | 0 |
|
||||
| clks\arch\aarch64 (Files) | 1 | -6 | 0 | -1 | -7 |
|
||||
| clks\arch\aarch64\startup | 1 | 6 | 0 | 1 | 7 |
|
||||
| clks\arch\x86_64 | 6 | 0 | 0 | 0 | 0 |
|
||||
| clks\arch\x86_64 (Files) | 3 | -154 | 0 | -21 | -175 |
|
||||
| clks\arch\x86_64\interrupt | 1 | 108 | 0 | 12 | 120 |
|
||||
| clks\arch\x86_64\startup | 2 | 46 | 0 | 9 | 55 |
|
||||
| clks\drivers | 7 | -721 | 0 | -183 | -904 |
|
||||
| clks\drivers\audio | 1 | -101 | 0 | -25 | -126 |
|
||||
| clks\drivers\serial | 1 | -52 | 0 | -16 | -68 |
|
||||
| clks\drivers\video | 5 | -568 | 0 | -142 | -710 |
|
||||
| clks\include | 7 | -38 | 0 | -1 | -39 |
|
||||
| clks\include\clks | 7 | -38 | 0 | -1 | -39 |
|
||||
| clks\kernel | 55 | 1,218 | 1 | 358 | 1,577 |
|
||||
| clks\kernel (Files) | 23 | -10,645 | -3 | -2,794 | -13,442 |
|
||||
| clks\kernel\boot | 1 | 76 | 0 | 26 | 102 |
|
||||
| clks\kernel\boot\limine | 1 | 76 | 0 | 26 | 102 |
|
||||
| clks\kernel\core | 6 | 1,644 | 1 | 401 | 2,046 |
|
||||
| clks\kernel\hal | 7 | 667 | 0 | 182 | 849 |
|
||||
| clks\kernel\hal\audio | 1 | 101 | 0 | 25 | 126 |
|
||||
| clks\kernel\hal\serial | 1 | 51 | 0 | 16 | 67 |
|
||||
| clks\kernel\hal\video | 5 | 515 | 0 | 141 | 656 |
|
||||
| clks\kernel\input | 2 | 613 | 0 | 158 | 771 |
|
||||
| clks\kernel\interface | 3 | 2,690 | 0 | 690 | 3,380 |
|
||||
| clks\kernel\memory | 2 | 219 | 0 | 67 | 286 |
|
||||
| clks\kernel\runtime | 7 | 5,019 | 3 | 1,333 | 6,355 |
|
||||
| clks\kernel\storage | 2 | 856 | 0 | 272 | 1,128 |
|
||||
| clks\kernel\support | 2 | 79 | 0 | 23 | 102 |
|
||||
| clks\lib | 2 | -79 | 0 | -23 | -102 |
|
||||
| configs | 1 | 180 | 0 | 0 | 180 |
|
||||
| configs\menuconfig | 1 | 180 | 0 | 0 | 180 |
|
||||
| docs | 1 | 46 | 0 | 14 | 60 |
|
||||
| limine | 154 | 25,236 | 932 | 5,598 | 31,766 |
|
||||
| limine (Files) | 8 | 873 | 1 | 175 | 1,049 |
|
||||
| limine\.github | 6 | 210 | 0 | 59 | 269 |
|
||||
| limine\.github (Files) | 1 | 7 | 0 | 1 | 8 |
|
||||
| limine\.github\workflows | 5 | 203 | 0 | 58 | 261 |
|
||||
| limine\common | 125 | 21,620 | 875 | 4,868 | 27,363 |
|
||||
| limine\common (Files) | 7 | 2,368 | 40 | 375 | 2,783 |
|
||||
| limine\common\crypt | 2 | 185 | 3 | 44 | 232 |
|
||||
| limine\common\drivers | 12 | 1,763 | 50 | 460 | 2,273 |
|
||||
| limine\common\fs | 6 | 1,200 | 77 | 243 | 1,520 |
|
||||
| limine\common\lib | 49 | 6,940 | 201 | 1,515 | 8,656 |
|
||||
| limine\common\libc-compat | 2 | 23 | 0 | 8 | 31 |
|
||||
| limine\common\mm | 7 | 1,434 | 94 | 418 | 1,946 |
|
||||
| limine\common\protos | 14 | 4,509 | 278 | 1,031 | 5,818 |
|
||||
| limine\common\pxe | 4 | 396 | 7 | 97 | 500 |
|
||||
| limine\common\sys | 22 | 2,802 | 125 | 677 | 3,604 |
|
||||
| limine\decompressor | 4 | 184 | 5 | 43 | 232 |
|
||||
| limine\host | 3 | 1,216 | 33 | 237 | 1,486 |
|
||||
| limine\test | 8 | 1,133 | 18 | 216 | 1,367 |
|
||||
| scripts | 1 | 622 | 0 | 100 | 722 |
|
||||
| wine | 4 | 627 | 5 | 125 | 757 |
|
||||
| wine (Files) | 1 | 4 | 0 | 0 | 4 |
|
||||
| wine\cleonos_wine_lib | 3 | 623 | 5 | 125 | 753 |
|
||||
+--------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||
|
||||
Files
|
||||
+--------------------------------------------------------------------------------------------+--------------+------------+------------+------------+------------+
|
||||
| filename | language | code | comment | blank | total |
|
||||
+--------------------------------------------------------------------------------------------+--------------+------------+------------+------------+------------+
|
||||
| d:\Projects\C\cleonos\.github\workflows\style-check.yml | YAML | 109 | 0 | 19 | 128 |
|
||||
| d:\Projects\C\cleonos\CMakeLists.txt | CMake | 130 | 0 | 10 | 140 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\ansi_main.c | C | 2 | 0 | -2 | 0 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\ansitest_main.c | C | 3 | 0 | -2 | 1 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\append_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\bmpview_main.c | C | 331 | 0 | 81 | 412 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cat_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cd_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\clear_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cmd_runtime.c | C | -5 | 0 | 0 | -5 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cmd_runtime.h | C++ | -4 | 0 | 0 | -4 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cp_main.c | C | -2 | 0 | -2 | -4 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cut_main.c | C | -4 | 0 | -1 | -5 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\dmesg_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\doom\doom_compat.c | C | 1,196 | 0 | 277 | 1,473 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\doom\doom_shim.h | C++ | 17 | 1 | 3 | 21 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\doom\doomgeneric_clks.c | C | 153 | 0 | 48 | 201 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\doom_main.c | C | 66 | 0 | 16 | 82 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\exec_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\exit_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\fastfetch_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\fg_main.c | C | -1 | 0 | 0 | -1 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\fsstat_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\grep_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\head_main.c | C | 0 | 0 | -1 | -1 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\help_main.c | C | 3 | 0 | -1 | 2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\kbdstat_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\kdbg_main.c | C | -1 | 0 | 0 | -1 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\ls_main.c | C | -10 | 0 | -2 | -12 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\memstat_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\mkdir_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\mv_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\pid_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\pwd_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\qrcode\qrcodegen.c | C | 759 | 176 | 96 | 1,031 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\qrcode\qrcodegen.h | C++ | 62 | 268 | 34 | 364 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\qrcode_main.c | C | 207 | 1 | 58 | 266 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\restart_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\rm_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_cmd.c | C | -35 | 0 | -4 | -39 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_external.c | C | -10 | 0 | 0 | -10 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_input.c | C | 0 | 0 | -1 | -1 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_internal.h | C++ | -5 | 0 | -1 | -6 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_path.c | C | 1 | 0 | 0 | 1 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell_main.c | C | -1 | 0 | 0 | -1 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shstat_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shutdown_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\sleep_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\sort_main.c | C | 1 | 0 | -1 | 0 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\spawn_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\spin_main.c | C | -1 | 0 | 0 | -1 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\stats_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\sysstat_main.c | C | 74 | 0 | 0 | 74 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\tail_main.c | C | 0 | 0 | -1 | -1 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\taskstat_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\top_main.c | C | -1 | 0 | 0 | -1 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\touch_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\tty_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\uniq_main.c | C | 0 | 0 | -1 | -1 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\userstat_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\wait_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\wavplay_main.c | C | -8 | 0 | 0 | -8 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\wc_main.c | C | 0 | 0 | -1 | -1 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\write_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\yield_main.c | C | 0 | 0 | -2 | -2 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\include\cleonos_syscall.h | C++ | 17 | 0 | 2 | 19 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\src\stdio.c | C | 177 | 0 | 35 | 212 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\src\syscall.c | C | 0 | 0 | 2 | 2 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\README.md | Markdown | 51 | 0 | 17 | 68 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\Makefile | Makefile | 34 | 7 | 14 | 55 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\am_map.c | C | 970 | 162 | 224 | 1,356 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\am_map.h | C++ | 13 | 24 | 13 | 50 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\config.h | C++ | 33 | 34 | 34 | 101 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_englsh.h | C++ | 522 | 65 | 107 | 694 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_event.c | C | 22 | 27 | 15 | 64 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_event.h | C++ | 43 | 66 | 29 | 138 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_items.c | C | 77 | 38 | 14 | 129 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_items.h | C++ | 14 | 18 | 10 | 42 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_iwad.c | C | 509 | 133 | 207 | 849 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_iwad.h | C++ | 28 | 16 | 9 | 53 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_loop.c | C | 464 | 169 | 194 | 827 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_loop.h | C++ | 23 | 34 | 25 | 82 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_main.c | C | 1,089 | 418 | 339 | 1,846 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_main.h | C++ | 11 | 24 | 16 | 51 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_mode.c | C | 150 | 28 | 32 | 210 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_mode.h | C++ | 58 | 24 | 17 | 99 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_net.c | C | 158 | 61 | 63 | 282 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_player.h | C++ | 82 | 77 | 51 | 210 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_textur.h | C++ | 10 | 22 | 12 | 44 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_think.h | C++ | 19 | 29 | 21 | 69 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_ticcmd.h | C++ | 17 | 26 | 14 | 57 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\deh_main.h | C++ | 19 | 19 | 11 | 49 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\deh_misc.h | C++ | 55 | 17 | 12 | 84 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\deh_str.h | C++ | 18 | 17 | 13 | 48 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doom.h | C++ | 4 | 27 | 12 | 43 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomdata.h | C++ | 93 | 70 | 51 | 214 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomdef.c | C | 1 | 20 | 8 | 29 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomdef.h | C++ | 86 | 48 | 35 | 169 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomfeatures.h | C++ | 6 | 22 | 13 | 41 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric.c | C | 15 | 1 | 12 | 28 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric.h | C++ | 31 | 1 | 18 | 50 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric.vcxproj | XML | 339 | 0 | 0 | 339 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_allegro.c | C | 319 | 16 | 119 | 454 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_emscripten.c | C | 184 | 5 | 31 | 220 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_linuxvt.c | C | 412 | 39 | 78 | 529 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_sdl.c | C | 173 | 9 | 29 | 211 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_soso.c | C | 217 | 6 | 54 | 277 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_sosox.c | C | 197 | 3 | 48 | 248 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_win.c | C | 171 | 2 | 37 | 210 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_xlib.c | C | 161 | 7 | 46 | 214 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomkeys.h | C++ | 61 | 23 | 14 | 98 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomstat.c | C | 7 | 19 | 10 | 36 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomstat.h | C++ | 77 | 108 | 97 | 282 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomtype.h | C++ | 40 | 35 | 30 | 105 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\dstrings.c | C | 37 | 22 | 15 | 74 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\dstrings.h | C++ | 8 | 22 | 12 | 42 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\dummy.c | C | 8 | 30 | 16 | 54 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\f_finale.c | C | 528 | 77 | 114 | 719 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\f_finale.h | C++ | 9 | 23 | 14 | 46 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\f_wipe.c | C | 220 | 31 | 44 | 295 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\f_wipe.h | C++ | 29 | 22 | 13 | 64 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\g_game.c | C | 1,572 | 319 | 413 | 2,304 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\g_game.h | C++ | 29 | 28 | 24 | 81 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\gusconf.c | C | 190 | 24 | 58 | 272 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\gusconf.h | C++ | 7 | 16 | 7 | 30 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\hu_lib.c | C | 252 | 32 | 64 | 348 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\hu_lib.h | C++ | 77 | 59 | 47 | 183 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\hu_stuff.c | C | 493 | 51 | 98 | 642 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\hu_stuff.h | C++ | 21 | 23 | 16 | 60 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_allegromusic.c | C | 192 | 38 | 79 | 309 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_allegrosound.c | C | 255 | 73 | 106 | 434 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_cdmus.c | C | 159 | 31 | 54 | 244 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_cdmus.h | C++ | 20 | 15 | 7 | 42 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_endoom.c | C | 48 | 26 | 28 | 102 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_endoom.h | C++ | 4 | 19 | 7 | 30 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_input.c | C | 261 | 45 | 36 | 342 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_joystick.c | C | 254 | 38 | 68 | 360 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_joystick.h | C++ | 21 | 33 | 17 | 71 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_scale.c | C | 889 | 225 | 339 | 1,453 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_scale.h | C++ | 21 | 20 | 13 | 54 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_sdlmusic.c | C | 887 | 177 | 253 | 1,317 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_sdlsound.c | C | 616 | 195 | 266 | 1,077 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_sound.c | C | 284 | 62 | 75 | 421 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_sound.h | C++ | 104 | 71 | 82 | 257 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_swap.h | C++ | 34 | 18 | 22 | 74 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_system.c | C | 347 | 112 | 120 | 579 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_system.h | C++ | 19 | 37 | 29 | 85 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_timer.c | C | 36 | 32 | 29 | 97 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_timer.h | C++ | 9 | 23 | 11 | 43 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_video.c | C | 309 | 74 | 113 | 496 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_video.h | C++ | 63 | 65 | 48 | 176 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\icon.c | C | 260 | 0 | 3 | 263 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\info.c | C | 4,492 | 21 | 150 | 4,663 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\info.h | C++ | 1,296 | 21 | 15 | 1,332 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_argv.c | C | 150 | 52 | 64 | 266 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_argv.h | C++ | 11 | 26 | 13 | 50 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_bbox.c | C | 21 | 20 | 14 | 55 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_bbox.h | C++ | 18 | 19 | 11 | 48 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_cheat.c | C | 38 | 32 | 20 | 90 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_cheat.h | C++ | 24 | 23 | 16 | 63 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_config.c | C | 615 | 948 | 566 | 2,129 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_config.h | C++ | 16 | 17 | 7 | 40 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_controls.c | C | 269 | 57 | 73 | 399 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_controls.h | C++ | 121 | 17 | 31 | 169 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_fixed.c | C | 24 | 21 | 18 | 63 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_fixed.h | C++ | 8 | 20 | 12 | 40 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_menu.c | C | 1,502 | 250 | 374 | 2,126 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_menu.h | C++ | 11 | 33 | 18 | 62 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_misc.c | C | 335 | 87 | 115 | 537 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_misc.h | C++ | 27 | 17 | 8 | 52 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_random.c | C | 37 | 22 | 7 | 66 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_random.h | C++ | 7 | 21 | 12 | 40 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\memio.c | C | 122 | 27 | 49 | 198 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\memio.h | C++ | 18 | 14 | 7 | 39 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\mus2mid.c | C | 504 | 76 | 158 | 738 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\mus2mid.h | C++ | 6 | 0 | 3 | 9 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_client.h | C++ | 29 | 15 | 9 | 53 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_dedicated.h | C++ | 4 | 16 | 6 | 26 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_defs.h | C++ | 148 | 46 | 55 | 249 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_gui.h | C++ | 5 | 18 | 7 | 30 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_io.h | C++ | 14 | 16 | 7 | 37 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_loop.h | C++ | 6 | 16 | 6 | 28 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_packet.h | C++ | 18 | 16 | 11 | 45 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_query.h | C++ | 19 | 16 | 10 | 45 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_sdl.h | C++ | 5 | 16 | 6 | 27 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_server.h | C++ | 8 | 21 | 14 | 43 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_ceilng.c | C | 226 | 47 | 52 | 325 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_doors.c | C | 571 | 83 | 125 | 779 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_enemy.c | C | 1,341 | 238 | 428 | 2,007 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_floor.c | C | 429 | 54 | 64 | 547 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_inter.c | C | 643 | 115 | 165 | 923 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_inter.h | C++ | 4 | 17 | 10 | 31 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_lights.c | C | 201 | 72 | 78 | 351 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_local.h | C++ | 155 | 66 | 77 | 298 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_map.c | C | 828 | 304 | 317 | 1,449 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_maputl.c | C | 651 | 161 | 190 | 1,002 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_mobj.c | C | 654 | 184 | 212 | 1,050 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_mobj.h | C++ | 77 | 161 | 47 | 285 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_plats.c | C | 218 | 29 | 58 | 305 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_pspr.c | C | 537 | 173 | 179 | 889 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_pspr.h | C++ | 21 | 35 | 16 | 72 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_saveg.c | C | 975 | 435 | 482 | 1,892 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_saveg.h | C++ | 21 | 24 | 18 | 63 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_setup.c | C | 547 | 134 | 175 | 856 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_setup.h | C++ | 10 | 19 | 9 | 38 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_sight.c | C | 204 | 75 | 72 | 351 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_spec.c | C | 908 | 307 | 275 | 1,490 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_spec.h | C++ | 380 | 75 | 183 | 638 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_switch.c | C | 425 | 111 | 113 | 649 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_telept.c | C | 69 | 35 | 30 | 134 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_tick.c | C | 63 | 53 | 36 | 152 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_tick.h | C++ | 4 | 20 | 10 | 34 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_user.c | C | 219 | 73 | 88 | 380 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_bsp.c | C | 329 | 122 | 123 | 574 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_bsp.h | C++ | 23 | 19 | 20 | 62 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_data.c | C | 543 | 167 | 203 | 913 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_data.h | C++ | 14 | 25 | 13 | 52 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_defs.h | C++ | 164 | 155 | 130 | 449 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_draw.c | C | 554 | 216 | 206 | 976 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_draw.h | C++ | 40 | 33 | 32 | 105 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_local.h | C++ | 13 | 24 | 9 | 46 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_main.c | C | 556 | 155 | 181 | 892 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_main.h | C++ | 72 | 45 | 44 | 161 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_plane.c | C | 278 | 84 | 85 | 447 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_plane.h | C++ | 37 | 18 | 22 | 77 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_segs.c | C | 507 | 103 | 134 | 744 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_segs.h | C++ | 8 | 17 | 9 | 34 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_sky.c | C | 10 | 31 | 12 | 53 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_sky.h | C++ | 8 | 20 | 10 | 38 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_state.h | C++ | 49 | 36 | 43 | 128 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_things.c | C | 605 | 171 | 207 | 983 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_things.h | C++ | 28 | 20 | 18 | 66 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\s_sound.c | C | 431 | 108 | 132 | 671 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\s_sound.h | C++ | 20 | 42 | 28 | 90 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\sha1.c | C | 239 | 49 | 32 | 320 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\sha1.h | C++ | 17 | 16 | 8 | 41 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\sounds.c | C | 192 | 25 | 13 | 230 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\sounds.h | C++ | 191 | 26 | 11 | 228 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\st_lib.c | C | 186 | 35 | 64 | 285 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\st_lib.h | C++ | 91 | 60 | 59 | 210 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\st_stuff.c | C | 903 | 216 | 298 | 1,417 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\st_stuff.h | C++ | 36 | 31 | 23 | 90 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\statdump.c | C | 239 | 58 | 96 | 393 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\statdump.h | C++ | 5 | 15 | 4 | 24 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\tables.c | C | 2,173 | 37 | 18 | 2,228 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\tables.h | C++ | 26 | 44 | 27 | 97 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\v_patch.h | C++ | 17 | 25 | 9 | 51 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\v_video.c | C | 617 | 139 | 177 | 933 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\v_video.h | C++ | 34 | 40 | 35 | 109 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_checksum.c | C | 48 | 21 | 19 | 88 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_checksum.h | C++ | 5 | 17 | 6 | 28 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_file.c | C | 44 | 32 | 20 | 96 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_file.h | C++ | 23 | 31 | 25 | 79 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_file_stdc.c | C | 49 | 22 | 26 | 97 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_main.c | C | 87 | 66 | 46 | 199 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_main.h | C++ | 4 | 16 | 5 | 25 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_merge.h | C++ | 9 | 23 | 13 | 45 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_wad.c | C | 353 | 124 | 136 | 613 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_wad.h | C++ | 31 | 24 | 24 | 79 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\wi_stuff.c | C | 1,215 | 210 | 405 | 1,830 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\wi_stuff.h | C++ | 14 | 24 | 11 | 49 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\z_zone.c | C | 278 | 89 | 122 | 489 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\z_zone.h | C++ | 29 | 29 | 16 | 74 |
|
||||
| d:\Projects\C\cleonos\clks\arch\aarch64\boot.c | C | -6 | 0 | -1 | -7 |
|
||||
| d:\Projects\C\cleonos\clks\arch\aarch64\startup\boot.c | C | 6 | 0 | 1 | 7 |
|
||||
| d:\Projects\C\cleonos\clks\arch\x86_64\boot.c | C | -6 | 0 | -1 | -7 |
|
||||
| d:\Projects\C\cleonos\clks\arch\x86_64\exec_stack_call.S | Go Assembly | -40 | 0 | -8 | -48 |
|
||||
| d:\Projects\C\cleonos\clks\arch\x86_64\interrupt\interrupt_stubs.S | Go Assembly | 108 | 0 | 12 | 120 |
|
||||
| d:\Projects\C\cleonos\clks\arch\x86_64\interrupt_stubs.S | Go Assembly | -108 | 0 | -12 | -120 |
|
||||
| d:\Projects\C\cleonos\clks\arch\x86_64\startup\boot.c | C | 6 | 0 | 1 | 7 |
|
||||
| d:\Projects\C\cleonos\clks\arch\x86_64\startup\exec_stack_call.S | Go Assembly | 40 | 0 | 8 | 48 |
|
||||
| d:\Projects\C\cleonos\clks\drivers\audio\pcspeaker.c | C | -101 | 0 | -25 | -126 |
|
||||
| d:\Projects\C\cleonos\clks\drivers\serial\serial.c | C | -52 | 0 | -16 | -68 |
|
||||
| d:\Projects\C\cleonos\clks\drivers\video\font8x8.c | C | -67 | 0 | -8 | -75 |
|
||||
| d:\Projects\C\cleonos\clks\drivers\video\font8x8.h | C++ | -5 | 0 | -3 | -8 |
|
||||
| d:\Projects\C\cleonos\clks\drivers\video\framebuffer.c | C | -251 | 0 | -70 | -321 |
|
||||
| d:\Projects\C\cleonos\clks\drivers\video\psf_font.c | C | -230 | 0 | -56 | -286 |
|
||||
| d:\Projects\C\cleonos\clks\drivers\video\psf_font.h | C++ | -15 | 0 | -5 | -20 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\exec.h | C++ | -8 | 0 | 0 | -8 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\keyboard.h | C++ | 0 | 0 | -1 | -1 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\limine.h | C++ | -20 | 0 | 0 | -20 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\panic.h | C++ | -5 | 0 | 0 | -5 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\syscall.h | C++ | 3 | 0 | 0 | 3 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\task.h | C++ | -5 | 0 | 0 | -5 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\types.h | C++ | -3 | 0 | 0 | -3 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\boot\limine\limine_requests.c | C | 76 | 0 | 26 | 102 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\core\interrupts.c | C | 307 | 0 | 43 | 350 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\core\kmain.c | C | 388 | 1 | 77 | 466 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\core\log.c | C | 179 | 0 | 48 | 227 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\core\panic.c | C | 527 | 0 | 155 | 682 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\core\scheduler.c | C | 136 | 0 | 44 | 180 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\core\service.c | C | 107 | 0 | 34 | 141 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\desktop.c | C | -321 | 0 | -86 | -407 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\driver.c | C | -169 | 0 | -49 | -218 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\elf64.c | C | -239 | 0 | -73 | -312 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\elfrunner.c | C | -30 | 0 | -8 | -38 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\exec.c | C | -2,037 | -1 | -555 | -2,593 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\fs.c | C | -701 | 0 | -222 | -923 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\hal\audio\pcspeaker.c | C | 101 | 0 | 25 | 126 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\hal\serial\serial.c | C | 51 | 0 | 16 | 67 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\hal\video\font8x8.c | C | 45 | 0 | 8 | 53 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\hal\video\font8x8.h | C++ | 5 | 0 | 3 | 8 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\hal\video\framebuffer.c | C | 247 | 0 | 69 | 316 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\hal\video\psf_font.c | C | 203 | 0 | 56 | 259 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\hal\video\psf_font.h | C++ | 15 | 0 | 5 | 20 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\heap.c | C | -134 | 0 | -42 | -176 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\input\keyboard.c | C | 370 | 0 | 95 | 465 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\input\mouse.c | C | 243 | 0 | 63 | 306 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\interface\desktop.c | C | 321 | 0 | 86 | 407 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\interface\shell.c | C | 1,232 | 0 | 316 | 1,548 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\interface\tty.c | C | 1,137 | 0 | 288 | 1,425 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\interrupts.c | C | -317 | 0 | -44 | -361 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\kelf.c | C | -203 | -1 | -53 | -257 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\keyboard.c | C | -379 | 0 | -96 | -475 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\kmain.c | C | -388 | -1 | -77 | -466 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\limine_requests.c | C | -76 | 0 | -26 | -102 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\log.c | C | -185 | 0 | -48 | -233 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\memory\heap.c | C | 137 | 0 | 44 | 181 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\memory\pmm.c | C | 82 | 0 | 23 | 105 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\mouse.c | C | -246 | 0 | -63 | -309 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\panic.c | C | -546 | 0 | -155 | -701 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\pmm.c | C | -82 | 0 | -23 | -105 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\ramdisk.c | C | -172 | 0 | -50 | -222 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\runtime\driver.c | C | 166 | 0 | 49 | 215 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\runtime\elf64.c | C | 279 | 1 | 84 | 364 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\runtime\elfrunner.c | C | 30 | 0 | 8 | 38 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\runtime\exec.c | C | 2,179 | 1 | 595 | 2,775 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\runtime\kelf.c | C | 198 | 1 | 52 | 251 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\runtime\syscall.c | C | 2,021 | 0 | 507 | 2,528 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\runtime\userland.c | C | 146 | 0 | 38 | 184 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\scheduler.c | C | -136 | 0 | -44 | -180 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\service.c | C | -113 | 0 | -34 | -147 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\shell.c | C | -1,250 | 0 | -317 | -1,567 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\storage\fs.c | C | 684 | 0 | 222 | 906 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\storage\ramdisk.c | C | 172 | 0 | 50 | 222 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\support\libc_compat.c | C | 25 | 0 | 7 | 32 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\support\string.c | C | 54 | 0 | 16 | 70 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\syscall.c | C | -1,588 | 0 | -401 | -1,989 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\tty.c | C | -1,188 | 0 | -290 | -1,478 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\userland.c | C | -145 | 0 | -38 | -183 |
|
||||
| d:\Projects\C\cleonos\clks\lib\libc_compat.c | C | -25 | 0 | -7 | -32 |
|
||||
| d:\Projects\C\cleonos\clks\lib\string.c | C | -54 | 0 | -16 | -70 |
|
||||
| d:\Projects\C\cleonos\configs\menuconfig\clks_features.json | JSON | 180 | 0 | 0 | 180 |
|
||||
| d:\Projects\C\cleonos\docs\syscall.md | Markdown | 46 | 0 | 14 | 60 |
|
||||
| d:\Projects\C\cleonos\limine\.github\dependabot.yml | YAML | 7 | 0 | 1 | 8 |
|
||||
| d:\Projects\C\cleonos\limine\.github\workflows\binary-release.yml | YAML | 78 | 0 | 21 | 99 |
|
||||
| d:\Projects\C\cleonos\limine\.github\workflows\check.yml | YAML | 34 | 0 | 12 | 46 |
|
||||
| d:\Projects\C\cleonos\limine\.github\workflows\pr_branch_check.yml | YAML | 13 | 0 | 3 | 16 |
|
||||
| d:\Projects\C\cleonos\limine\.github\workflows\qa.yml | YAML | 14 | 0 | 5 | 19 |
|
||||
| d:\Projects\C\cleonos\limine\.github\workflows\release.yml | YAML | 64 | 0 | 17 | 81 |
|
||||
| d:\Projects\C\cleonos\limine\3RDPARTY.md | Markdown | 53 | 0 | 15 | 68 |
|
||||
| d:\Projects\C\cleonos\limine\CONFIG.md | Markdown | 320 | 0 | 53 | 373 |
|
||||
| d:\Projects\C\cleonos\limine\FAQ.md | Markdown | 26 | 0 | 10 | 36 |
|
||||
| d:\Projects\C\cleonos\limine\INSTALL.md | Markdown | 37 | 0 | 15 | 52 |
|
||||
| d:\Projects\C\cleonos\limine\README.md | Markdown | 70 | 0 | 33 | 103 |
|
||||
| d:\Projects\C\cleonos\limine\USAGE.md | Markdown | 85 | 0 | 23 | 108 |
|
||||
| d:\Projects\C\cleonos\limine\common\common.mk | Makefile | 562 | 0 | 115 | 677 |
|
||||
| d:\Projects\C\cleonos\limine\common\crypt\blake2b.c | C | 179 | 3 | 39 | 221 |
|
||||
| d:\Projects\C\cleonos\limine\common\crypt\blake2b.h | C++ | 6 | 0 | 5 | 11 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\disk.h | C++ | 18 | 0 | 9 | 27 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\disk.s2.c | C | 646 | 33 | 178 | 857 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\edid.c | C | 61 | 0 | 25 | 86 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\edid.h | C++ | 37 | 0 | 7 | 44 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\gop.c | C | 306 | 3 | 73 | 382 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\gop.h | C++ | 13 | 0 | 7 | 20 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\serial.c | C | 37 | 1 | 13 | 51 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\serial.h | C++ | 9 | 0 | 7 | 16 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\vbe.c | C | 307 | 8 | 53 | 368 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\vbe.h | C++ | 11 | 0 | 5 | 16 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\vga_textmode.c | C | 294 | 5 | 71 | 370 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\vga_textmode.h | C++ | 24 | 0 | 12 | 36 |
|
||||
| d:\Projects\C\cleonos\limine\common\entry.s2.c | C | 106 | 1 | 28 | 135 |
|
||||
| d:\Projects\C\cleonos\limine\common\entry.s3.c | C | 202 | 0 | 47 | 249 |
|
||||
| d:\Projects\C\cleonos\limine\common\fs\fat32.h | C++ | 7 | 0 | 5 | 12 |
|
||||
| d:\Projects\C\cleonos\limine\common\fs\fat32.s2.c | C | 577 | 39 | 111 | 727 |
|
||||
| d:\Projects\C\cleonos\limine\common\fs\file.h | C++ | 39 | 0 | 7 | 46 |
|
||||
| d:\Projects\C\cleonos\limine\common\fs\file.s2.c | C | 163 | 0 | 22 | 185 |
|
||||
| d:\Projects\C\cleonos\limine\common\fs\iso9660.h | C++ | 7 | 0 | 4 | 11 |
|
||||
| d:\Projects\C\cleonos\limine\common\fs\iso9660.s2.c | C | 407 | 38 | 94 | 539 |
|
||||
| d:\Projects\C\cleonos\limine\common\gensyms.sh | Shell Script | 33 | 2 | 17 | 52 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\acpi.c | C | 344 | 27 | 102 | 473 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\acpi.h | C++ | 163 | 24 | 30 | 217 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\bli.c | C | 67 | 4 | 20 | 91 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\bli.h | C++ | 7 | 0 | 5 | 12 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\config.c | C | 628 | 11 | 126 | 765 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\config.h | C++ | 28 | 0 | 9 | 37 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\elf.c | C | 964 | 27 | 212 | 1,203 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\elf.h | C++ | 74 | 0 | 14 | 88 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\elsewhere.c | C | 81 | 7 | 17 | 105 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\elsewhere.h | C++ | 16 | 0 | 5 | 21 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\fb.c | C | 153 | 4 | 17 | 174 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\fb.h | C++ | 36 | 0 | 12 | 48 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\fdt.c | C | 33 | 0 | 12 | 45 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\fdt.h | C++ | 10 | 0 | 6 | 16 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\getchar.c | C | 306 | 1 | 59 | 366 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\getchar.h | C++ | 23 | 0 | 6 | 29 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\gterm.c | C | 813 | 9 | 118 | 940 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\gterm.h | C++ | 29 | 0 | 6 | 35 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\guid.c | C | 82 | 0 | 14 | 96 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\guid.h | C++ | 15 | 1 | 5 | 21 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\image.c | C | 52 | 2 | 18 | 72 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\image.h | C++ | 27 | 0 | 6 | 33 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\libc.c | C | 114 | 3 | 15 | 132 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\libc.h | C++ | 29 | 0 | 8 | 37 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\libc.s2.c | C | 122 | 2 | 26 | 150 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\macros.aarch64_asm.h | C++ | 44 | 4 | 5 | 53 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\memory.s2.c | C | 41 | 0 | 13 | 54 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\misc.c | C | 322 | 8 | 90 | 420 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\misc.h | C++ | 122 | 0 | 32 | 154 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\misc.s2.c | C | 117 | 0 | 12 | 129 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\panic.s2.c | C | 70 | 8 | 12 | 90 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\part.h | C++ | 86 | 2 | 23 | 111 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\part.s2.c | C | 464 | 31 | 121 | 616 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\pe.c | C | 398 | 5 | 98 | 501 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\pe.h | C++ | 8 | 0 | 5 | 13 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\print.h | C++ | 11 | 0 | 6 | 17 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\print.s2.c | C | 200 | 0 | 36 | 236 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\rand.c | C | 112 | 5 | 25 | 142 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\rand.h | C++ | 7 | 0 | 5 | 12 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\real.h | C++ | 26 | 0 | 9 | 35 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\stb_image.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\term.c | C | 266 | 5 | 49 | 320 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\term.h | C++ | 47 | 0 | 13 | 60 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\time.c | C | 59 | 2 | 15 | 76 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\time.h | C++ | 5 | 0 | 4 | 9 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\trace.h | C++ | 5 | 0 | 4 | 9 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\trace.s2.c | C | 79 | 0 | 9 | 88 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\uri.c | C | 224 | 9 | 54 | 287 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\uri.h | C++ | 7 | 0 | 4 | 11 |
|
||||
| d:\Projects\C\cleonos\limine\common\libc-compat\stdlib.h | C++ | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\limine\common\libc-compat\string.h | C++ | 19 | 0 | 5 | 24 |
|
||||
| d:\Projects\C\cleonos\limine\common\menu.c | C | 1,378 | 30 | 150 | 1,558 |
|
||||
| d:\Projects\C\cleonos\limine\common\menu.h | C++ | 13 | 0 | 8 | 21 |
|
||||
| d:\Projects\C\cleonos\limine\common\mm\mtrr.c | C | 91 | 18 | 32 | 141 |
|
||||
| d:\Projects\C\cleonos\limine\common\mm\mtrr.h | C++ | 7 | 0 | 5 | 12 |
|
||||
| d:\Projects\C\cleonos\limine\common\mm\pmm.c | C | 70 | 3 | 16 | 89 |
|
||||
| d:\Projects\C\cleonos\limine\common\mm\pmm.h | C++ | 63 | 0 | 18 | 81 |
|
||||
| d:\Projects\C\cleonos\limine\common\mm\pmm.s2.c | C | 662 | 37 | 192 | 891 |
|
||||
| d:\Projects\C\cleonos\limine\common\mm\vmm.c | C | 416 | 30 | 110 | 556 |
|
||||
| d:\Projects\C\cleonos\limine\common\mm\vmm.h | C++ | 125 | 6 | 45 | 176 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\chainload.c | C | 283 | 7 | 78 | 368 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\chainload.h | C++ | 5 | 0 | 4 | 9 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\efi_boot_entry.c | C | 94 | 6 | 26 | 126 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\efi_boot_entry.h | C++ | 5 | 0 | 4 | 9 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\limine.c | C | 1,523 | 80 | 331 | 1,934 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\limine.h | C++ | 5 | 0 | 4 | 9 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\linux.h | C++ | 59 | 1 | 14 | 74 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\linux_risc.c | C | 412 | 22 | 99 | 533 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\linux_x86.c | C | 527 | 41 | 96 | 664 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\multiboot.h | C++ | 13 | 0 | 5 | 18 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\multiboot1.c | C | 394 | 14 | 105 | 513 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\multiboot1.h | C++ | 76 | 0 | 25 | 101 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\multiboot2.c | C | 782 | 77 | 182 | 1,041 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\multiboot2.h | C++ | 331 | 30 | 58 | 419 |
|
||||
| d:\Projects\C\cleonos\limine\common\pxe\pxe.h | C++ | 96 | 0 | 16 | 112 |
|
||||
| d:\Projects\C\cleonos\limine\common\pxe\pxe.s2.c | C | 53 | 2 | 18 | 73 |
|
||||
| d:\Projects\C\cleonos\limine\common\pxe\tftp.h | C++ | 36 | 0 | 11 | 47 |
|
||||
| d:\Projects\C\cleonos\limine\common\pxe\tftp.s2.c | C | 211 | 5 | 52 | 268 |
|
||||
| d:\Projects\C\cleonos\limine\common\stb_image.patch | Diff | 74 | 7 | 10 | 91 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\a20.h | C++ | 6 | 0 | 4 | 10 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\a20.s2.c | C | 67 | 5 | 21 | 93 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\cpu.h | C++ | 429 | 2 | 82 | 513 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\cpu.s2.c | C | 58 | 6 | 14 | 78 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\cpu_riscv.c | C | 353 | 10 | 65 | 428 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\e820.h | C++ | 9 | 0 | 5 | 14 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\e820.s2.c | C | 33 | 0 | 12 | 45 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\exceptions.s2.c | C | 46 | 0 | 5 | 51 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\gdt.h | C++ | 23 | 0 | 7 | 30 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\gdt.s2.c | C | 83 | 0 | 13 | 96 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\idt.c | C | 53 | 3 | 16 | 72 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\idt.h | C++ | 43 | 0 | 17 | 60 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\idt.s2.c | C | 26 | 0 | 10 | 36 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\iommu.c | C | 94 | 21 | 30 | 145 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\iommu.h | C++ | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\lapic.c | C | 420 | 23 | 69 | 512 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\lapic.h | C++ | 30 | 0 | 9 | 39 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\pic.c | C | 37 | 1 | 11 | 49 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\pic.h | C++ | 8 | 0 | 4 | 12 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\sbi.h | C++ | 25 | 0 | 8 | 33 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\smp.c | C | 917 | 54 | 259 | 1,230 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\smp.h | C++ | 38 | 0 | 13 | 51 |
|
||||
| d:\Projects\C\cleonos\limine\decompressor\decompressor.mk | Makefile | 70 | 0 | 15 | 85 |
|
||||
| d:\Projects\C\cleonos\limine\decompressor\main.c | C | 31 | 2 | 5 | 38 |
|
||||
| d:\Projects\C\cleonos\limine\decompressor\memory.c | C | 41 | 0 | 13 | 54 |
|
||||
| d:\Projects\C\cleonos\limine\decompressor\tinf.patch | Diff | 42 | 3 | 10 | 55 |
|
||||
| d:\Projects\C\cleonos\limine\host\hgen.sh | Shell Script | 10 | 1 | 6 | 17 |
|
||||
| d:\Projects\C\cleonos\limine\host\host.mk | Makefile | 14 | 0 | 6 | 20 |
|
||||
| d:\Projects\C\cleonos\limine\host\limine.c | C | 1,192 | 32 | 225 | 1,449 |
|
||||
| d:\Projects\C\cleonos\limine\test.mk | Makefile | 263 | 0 | 16 | 279 |
|
||||
| d:\Projects\C\cleonos\limine\test\e9print.c | C | 81 | 0 | 18 | 99 |
|
||||
| d:\Projects\C\cleonos\limine\test\e9print.h | C++ | 7 | 0 | 3 | 10 |
|
||||
| d:\Projects\C\cleonos\limine\test\limine.c | C | 624 | 0 | 82 | 706 |
|
||||
| d:\Projects\C\cleonos\limine\test\limine.conf | Properties | 40 | 1 | 19 | 60 |
|
||||
| d:\Projects\C\cleonos\limine\test\memory.c | C | 40 | 0 | 13 | 53 |
|
||||
| d:\Projects\C\cleonos\limine\test\multiboot.c | C | 57 | 12 | 24 | 93 |
|
||||
| d:\Projects\C\cleonos\limine\test\multiboot2.c | C | 141 | 5 | 36 | 182 |
|
||||
| d:\Projects\C\cleonos\limine\test\test.mk | Makefile | 143 | 0 | 21 | 164 |
|
||||
| d:\Projects\C\cleonos\limine\version.sh | Shell Script | 19 | 1 | 10 | 30 |
|
||||
| d:\Projects\C\cleonos\scripts\menuconfig.py | Python | 622 | 0 | 100 | 722 |
|
||||
| d:\Projects\C\cleonos\wine\README.md | Markdown | 4 | 0 | 0 | 4 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\constants.py | Python | 36 | 3 | 3 | 42 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\runner.py | Python | 469 | 0 | 91 | 560 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\state.py | Python | 118 | 2 | 31 | 151 |
|
||||
| Total | | 77,719 | 13,900 | 20,413 | 112,032 |
|
||||
+--------------------------------------------------------------------------------------------+--------------+------------+------------+------------+------------+
|
||||
571
.VSCodeCounter/2026-04-21_02-41-45/results.csv
Normal file
571
.VSCodeCounter/2026-04-21_02-41-45/results.csv
Normal file
@@ -0,0 +1,571 @@
|
||||
"filename", "language", "YAML", "pip requirements", "Markdown", "C", "Python", "CMake", "C++", "Makefile", "XML", "JSON", "Properties", "Rust", "Batch", "Go Assembly", "Shell Script", "Diff", "PowerShell", "comment", "blank", "total"
|
||||
"d:\Projects\C\cleonos\.github\workflows\build-os.yml", "YAML", 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 11, 88
|
||||
"d:\Projects\C\cleonos\.github\workflows\style-check.yml", "YAML", 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 128
|
||||
"d:\Projects\C\cleonos\CMakeLists.txt", "CMake", 0, 0, 0, 0, 0, 906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 1014
|
||||
"d:\Projects\C\cleonos\Makefile", "Makefile", 0, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 154
|
||||
"d:\Projects\C\cleonos\README.md", "Markdown", 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 126
|
||||
"d:\Projects\C\cleonos\README.zh-CN.md", "Markdown", 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 126
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\ansi_main.c", "C", 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 54
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\ansitest_main.c", "C", 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 178
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\append_main.c", "C", 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 90
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\args_main.c", "C", 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 62
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\bg_main.c", "C", 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 127
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\bmpview_main.c", "C", 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 412
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cat_main.c", "C", 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 107
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cd_main.c", "C", 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 67
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\clear_main.c", "C", 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 48
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cmd_runtime.c", "C", 0, 0, 0, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 598
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cmd_runtime.h", "C++", 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 99
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cp_main.c", "C", 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 132
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\cut_main.c", "C", 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 54, 265
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\dltest_main.c", "C", 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 49
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\dmesg_main.c", "C", 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 80
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\doom\doom_compat.c", "C", 0, 0, 0, 1196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 1473
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\doom\doom_shim.h", "C++", 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 21
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\doom\doomgeneric_clks.c", "C", 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 201
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\doom_main.c", "C", 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 82
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\elfrunner_kmain.c", "C", 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\elfrunner_main.c", "C", 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\exec_main.c", "C", 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 107
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\exit_main.c", "C", 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 66
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\fastfetch_main.c", "C", 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 212
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\fg_main.c", "C", 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 185
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\fsstat_main.c", "C", 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 55
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\grep_main.c", "C", 0, 0, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 249
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\head_main.c", "C", 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 211
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\hello_main.c", "C", 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\help_main.c", "C", 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 92
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\jobs_main.c", "C", 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 146
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\kbdstat_main.c", "C", 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 53
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\kdbg_main.c", "C", 0, 0, 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 269
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\kill_main.c", "C", 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 183
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\libctest_main.c", "C", 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 258
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\libdemo_main.c", "C", 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 25
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\ls_main.c", "C", 0, 0, 0, 266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 345
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\memc_kmain.c", "C", 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\memc_main.c", "C", 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 11
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\memstat_main.c", "C", 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 52
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\mkdir_main.c", "C", 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 71
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\mv_main.c", "C", 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 128
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\pid_main.c", "C", 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 48
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\procstat_main.c", "C", 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 245
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\ps_main.c", "C", 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 195
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\pwd_main.c", "C", 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 48
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\qrcode\qrcodegen.c", "C", 0, 0, 0, 759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 96, 1031
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\qrcode\qrcodegen.h", "C++", 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 34, 364
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\qrcode_main.c", "C", 0, 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 58, 266
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\restart_main.c", "C", 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 49
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\rm_main.c", "C", 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 71
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_cmd.c", "C", 0, 0, 0, 2499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 633, 3132
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_external.c", "C", 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 231
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_input.c", "C", 0, 0, 0, 567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 715
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_internal.h", "C++", 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 119
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_path.c", "C", 0, 0, 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 204
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_script.c", "C", 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 47
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_util.c", "C", 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 340
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shell_main.c", "C", 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 24
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shstat_main.c", "C", 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 54
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\shutdown_main.c", "C", 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 49
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\sleep_main.c", "C", 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\sort_main.c", "C", 0, 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 268
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\spawn_main.c", "C", 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 94
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\spin_main.c", "C", 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 16
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\stats_main.c", "C", 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 118
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\sysstat_main.c", "C", 0, 0, 0, 341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 386
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\tail_main.c", "C", 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 244
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\taskstat_main.c", "C", 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 52
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\top_main.c", "C", 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 238
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\touch_main.c", "C", 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 72
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\tty_main.c", "C", 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 79
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\ttydrv_main.c", "C", 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\uniq_main.c", "C", 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 215
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\userstat_main.c", "C", 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 57
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\wait_main.c", "C", 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 83
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\wavplay_main.c", "C", 0, 0, 0, 447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 557
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\wc_main.c", "C", 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 209
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\write_main.c", "C", 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 90
|
||||
"d:\Projects\C\cleonos\cleonos\c\apps\yield_main.c", "C", 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 48
|
||||
"d:\Projects\C\cleonos\cleonos\c\include\cleonos_rust_bridge.h", "C++", 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10
|
||||
"d:\Projects\C\cleonos\cleonos\c\include\cleonos_stdio.h", "C++", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\cleonos\c\include\cleonos_syscall.h", "C++", 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 235
|
||||
"d:\Projects\C\cleonos\cleonos\c\include\ctype.h", "C++", 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 17
|
||||
"d:\Projects\C\cleonos\cleonos\c\include\dlfcn.h", "C++", 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9
|
||||
"d:\Projects\C\cleonos\cleonos\c\include\stdio.h", "C++", 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 28
|
||||
"d:\Projects\C\cleonos\cleonos\c\include\stdlib.h", "C++", 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 37
|
||||
"d:\Projects\C\cleonos\cleonos\c\include\string.h", "C++", 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 30
|
||||
"d:\Projects\C\cleonos\cleonos\c\src\dlfcn.c", "C", 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 49
|
||||
"d:\Projects\C\cleonos\cleonos\c\src\libc_ctype.c", "C", 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 46
|
||||
"d:\Projects\C\cleonos\cleonos\c\src\libc_stdlib.c", "C", 0, 0, 0, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 255
|
||||
"d:\Projects\C\cleonos\cleonos\c\src\libc_string.c", "C", 0, 0, 0, 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 446
|
||||
"d:\Projects\C\cleonos\cleonos\c\src\runtime.c", "C", 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 54
|
||||
"d:\Projects\C\cleonos\cleonos\c\src\stdio.c", "C", 0, 0, 0, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 713
|
||||
"d:\Projects\C\cleonos\cleonos\c\src\syscall.c", "C", 0, 0, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 370
|
||||
"d:\Projects\C\cleonos\cleonos\c\stub.c", "C", 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 9
|
||||
"d:\Projects\C\cleonos\cleonos\rust\src\lib.rs", "Rust", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 9, 32
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\README.md", "Markdown", 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 68
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\Makefile", "Makefile", 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 14, 55
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\am_map.c", "C", 0, 0, 0, 970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 224, 1356
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\am_map.h", "C++", 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 13, 50
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\config.h", "C++", 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, 101
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_englsh.h", "C++", 0, 0, 0, 0, 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 107, 694
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_event.c", "C", 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 15, 64
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_event.h", "C++", 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 29, 138
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_items.c", "C", 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 14, 129
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_items.h", "C++", 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 10, 42
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_iwad.c", "C", 0, 0, 0, 509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 207, 849
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_iwad.h", "C++", 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 9, 53
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_loop.c", "C", 0, 0, 0, 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, 194, 827
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_loop.h", "C++", 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 25, 82
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_main.c", "C", 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 418, 339, 1846
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_main.h", "C++", 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 16, 51
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_mode.c", "C", 0, 0, 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 32, 210
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_mode.h", "C++", 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 17, 99
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_net.c", "C", 0, 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 63, 282
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_player.h", "C++", 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 51, 210
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_textur.h", "C++", 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 12, 44
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_think.h", "C++", 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 21, 69
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_ticcmd.h", "C++", 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 14, 57
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\deh_main.h", "C++", 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 11, 49
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\deh_misc.h", "C++", 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 12, 84
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\deh_str.h", "C++", 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 13, 48
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doom.h", "C++", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 12, 43
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomdata.h", "C++", 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 51, 214
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomdef.c", "C", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 8, 29
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomdef.h", "C++", 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 35, 169
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomfeatures.h", "C++", 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 13, 41
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric.c", "C", 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 28
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric.h", "C++", 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 18, 50
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric.vcxproj", "XML", 0, 0, 0, 0, 0, 0, 0, 0, 339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 339
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_allegro.c", "C", 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 119, 454
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_emscripten.c", "C", 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 31, 220
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_linuxvt.c", "C", 0, 0, 0, 412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 78, 529
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_sdl.c", "C", 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 29, 211
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_soso.c", "C", 0, 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 54, 277
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_sosox.c", "C", 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 48, 248
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_win.c", "C", 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 37, 210
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_xlib.c", "C", 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 46, 214
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomkeys.h", "C++", 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 14, 98
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomstat.c", "C", 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 10, 36
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomstat.h", "C++", 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 97, 282
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomtype.h", "C++", 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 30, 105
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\dstrings.c", "C", 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 15, 74
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\dstrings.h", "C++", 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 12, 42
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\dummy.c", "C", 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 16, 54
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\f_finale.c", "C", 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 114, 719
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\f_finale.h", "C++", 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 14, 46
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\f_wipe.c", "C", 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 44, 295
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\f_wipe.h", "C++", 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 13, 64
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\g_game.c", "C", 0, 0, 0, 1572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 413, 2304
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\g_game.h", "C++", 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 24, 81
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\gusconf.c", "C", 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 58, 272
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\gusconf.h", "C++", 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 7, 30
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\hu_lib.c", "C", 0, 0, 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, 348
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\hu_lib.h", "C++", 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 47, 183
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\hu_stuff.c", "C", 0, 0, 0, 493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 98, 642
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\hu_stuff.h", "C++", 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 16, 60
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_allegromusic.c", "C", 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 79, 309
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_allegrosound.c", "C", 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 106, 434
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_cdmus.c", "C", 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 54, 244
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_cdmus.h", "C++", 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 7, 42
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_endoom.c", "C", 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 28, 102
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_endoom.h", "C++", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 7, 30
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_input.c", "C", 0, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 36, 342
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_joystick.c", "C", 0, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 68, 360
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_joystick.h", "C++", 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 17, 71
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_scale.c", "C", 0, 0, 0, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 339, 1453
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_scale.h", "C++", 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 13, 54
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_sdlmusic.c", "C", 0, 0, 0, 887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 253, 1317
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_sdlsound.c", "C", 0, 0, 0, 616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, 266, 1077
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_sound.c", "C", 0, 0, 0, 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 75, 421
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_sound.h", "C++", 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 82, 257
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_swap.h", "C++", 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 22, 74
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_system.c", "C", 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 120, 579
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_system.h", "C++", 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 29, 85
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_timer.c", "C", 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 29, 97
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_timer.h", "C++", 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 11, 43
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_video.c", "C", 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 113, 496
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_video.h", "C++", 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 48, 176
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\icon.c", "C", 0, 0, 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 263
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\info.c", "C", 0, 0, 0, 4492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 150, 4663
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\info.h", "C++", 0, 0, 0, 0, 0, 0, 1296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 15, 1332
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_argv.c", "C", 0, 0, 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 64, 266
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_argv.h", "C++", 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 13, 50
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_bbox.c", "C", 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 14, 55
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_bbox.h", "C++", 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 11, 48
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_cheat.c", "C", 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 20, 90
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_cheat.h", "C++", 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 16, 63
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_config.c", "C", 0, 0, 0, 615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 948, 566, 2129
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_config.h", "C++", 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 7, 40
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_controls.c", "C", 0, 0, 0, 269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 73, 399
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_controls.h", "C++", 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 31, 169
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_fixed.c", "C", 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 18, 63
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_fixed.h", "C++", 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 12, 40
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_menu.c", "C", 0, 0, 0, 1502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 374, 2126
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_menu.h", "C++", 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 18, 62
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_misc.c", "C", 0, 0, 0, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 115, 537
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_misc.h", "C++", 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 8, 52
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_random.c", "C", 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 7, 66
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_random.h", "C++", 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 12, 40
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\memio.c", "C", 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 49, 198
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\memio.h", "C++", 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 7, 39
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\mus2mid.c", "C", 0, 0, 0, 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 158, 738
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\mus2mid.h", "C++", 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_client.h", "C++", 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 9, 53
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_dedicated.h", "C++", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 6, 26
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_defs.h", "C++", 0, 0, 0, 0, 0, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 55, 249
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_gui.h", "C++", 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 7, 30
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_io.h", "C++", 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 7, 37
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_loop.h", "C++", 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 6, 28
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_packet.h", "C++", 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 11, 45
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_query.h", "C++", 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 10, 45
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_sdl.h", "C++", 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 6, 27
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_server.h", "C++", 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 14, 43
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_ceilng.c", "C", 0, 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 52, 325
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_doors.c", "C", 0, 0, 0, 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 125, 779
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_enemy.c", "C", 0, 0, 0, 1341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 428, 2007
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_floor.c", "C", 0, 0, 0, 429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 64, 547
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_inter.c", "C", 0, 0, 0, 643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 165, 923
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_inter.h", "C++", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 10, 31
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_lights.c", "C", 0, 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 78, 351
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_local.h", "C++", 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 77, 298
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_map.c", "C", 0, 0, 0, 828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 317, 1449
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_maputl.c", "C", 0, 0, 0, 651, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 190, 1002
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_mobj.c", "C", 0, 0, 0, 654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 212, 1050
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_mobj.h", "C++", 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 47, 285
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_plats.c", "C", 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 58, 305
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_pspr.c", "C", 0, 0, 0, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 179, 889
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_pspr.h", "C++", 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 16, 72
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_saveg.c", "C", 0, 0, 0, 975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 435, 482, 1892
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_saveg.h", "C++", 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 18, 63
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_setup.c", "C", 0, 0, 0, 547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 175, 856
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_setup.h", "C++", 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 9, 38
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_sight.c", "C", 0, 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 72, 351
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_spec.c", "C", 0, 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 275, 1490
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_spec.h", "C++", 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 183, 638
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_switch.c", "C", 0, 0, 0, 425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, 113, 649
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_telept.c", "C", 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 30, 134
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_tick.c", "C", 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 36, 152
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_tick.h", "C++", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 10, 34
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_user.c", "C", 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 88, 380
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_bsp.c", "C", 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 123, 574
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_bsp.h", "C++", 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 62
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_data.c", "C", 0, 0, 0, 543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 203, 913
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_data.h", "C++", 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 13, 52
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_defs.h", "C++", 0, 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 130, 449
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_draw.c", "C", 0, 0, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 206, 976
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_draw.h", "C++", 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 32, 105
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_local.h", "C++", 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 9, 46
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_main.c", "C", 0, 0, 0, 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 181, 892
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_main.h", "C++", 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 44, 161
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_plane.c", "C", 0, 0, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 85, 447
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_plane.h", "C++", 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 22, 77
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_segs.c", "C", 0, 0, 0, 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 134, 744
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_segs.h", "C++", 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 9, 34
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_sky.c", "C", 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 12, 53
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_sky.h", "C++", 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 10, 38
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_state.h", "C++", 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 43, 128
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_things.c", "C", 0, 0, 0, 605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 207, 983
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_things.h", "C++", 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 18, 66
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\s_sound.c", "C", 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 132, 671
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\s_sound.h", "C++", 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 28, 90
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\sha1.c", "C", 0, 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 32, 320
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\sha1.h", "C++", 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 8, 41
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\sounds.c", "C", 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 13, 230
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\sounds.h", "C++", 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 11, 228
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\st_lib.c", "C", 0, 0, 0, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 64, 285
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\st_lib.h", "C++", 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 59, 210
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\st_stuff.c", "C", 0, 0, 0, 903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 298, 1417
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\st_stuff.h", "C++", 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 23, 90
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\statdump.c", "C", 0, 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 96, 393
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\statdump.h", "C++", 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 24
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\tables.c", "C", 0, 0, 0, 2173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 18, 2228
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\tables.h", "C++", 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 27, 97
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\v_patch.h", "C++", 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 9, 51
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\v_video.c", "C", 0, 0, 0, 617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 177, 933
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\v_video.h", "C++", 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 35, 109
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_checksum.c", "C", 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 19, 88
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_checksum.h", "C++", 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 6, 28
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_file.c", "C", 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 20, 96
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_file.h", "C++", 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 25, 79
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_file_stdc.c", "C", 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 26, 97
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_main.c", "C", 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 46, 199
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_main.h", "C++", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 5, 25
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_merge.h", "C++", 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 13, 45
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_wad.c", "C", 0, 0, 0, 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 136, 613
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_wad.h", "C++", 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 79
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\wi_stuff.c", "C", 0, 0, 0, 1215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 405, 1830
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\wi_stuff.h", "C++", 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 11, 49
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\z_zone.c", "C", 0, 0, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 122, 489
|
||||
"d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\z_zone.h", "C++", 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 16, 74
|
||||
"d:\Projects\C\cleonos\clks\arch\aarch64\startup\boot.c", "C", 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7
|
||||
"d:\Projects\C\cleonos\clks\arch\x86_64\interrupt\interrupt_stubs.S", "Go Assembly", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 12, 120
|
||||
"d:\Projects\C\cleonos\clks\arch\x86_64\startup\boot.c", "C", 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7
|
||||
"d:\Projects\C\cleonos\clks\arch\x86_64\startup\exec_stack_call.S", "Go Assembly", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 8, 48
|
||||
"d:\Projects\C\cleonos\clks\include\clks\audio.h", "C++", 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 12
|
||||
"d:\Projects\C\cleonos\clks\include\clks\boot.h", "C++", 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 15
|
||||
"d:\Projects\C\cleonos\clks\include\clks\compiler.h", "C++", 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 17
|
||||
"d:\Projects\C\cleonos\clks\include\clks\cpu.h", "C++", 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 24
|
||||
"d:\Projects\C\cleonos\clks\include\clks\desktop.h", "C++", 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 11
|
||||
"d:\Projects\C\cleonos\clks\include\clks\driver.h", "C++", 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 37
|
||||
"d:\Projects\C\cleonos\clks\include\clks\elf64.h", "C++", 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 41
|
||||
"d:\Projects\C\cleonos\clks\include\clks\elfrunner.h", "C++", 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9
|
||||
"d:\Projects\C\cleonos\clks\include\clks\exec.h", "C++", 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 81
|
||||
"d:\Projects\C\cleonos\clks\include\clks\framebuffer.h", "C++", 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 32
|
||||
"d:\Projects\C\cleonos\clks\include\clks\fs.h", "C++", 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 30
|
||||
"d:\Projects\C\cleonos\clks\include\clks\heap.h", "C++", 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 19
|
||||
"d:\Projects\C\cleonos\clks\include\clks\interrupts.h", "C++", 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9
|
||||
"d:\Projects\C\cleonos\clks\include\clks\kelf.h", "C++", 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 14
|
||||
"d:\Projects\C\cleonos\clks\include\clks\kernel.h", "C++", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6
|
||||
"d:\Projects\C\cleonos\clks\include\clks\keyboard.h", "C++", 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 32
|
||||
"d:\Projects\C\cleonos\clks\include\clks\limine.h", "C++", 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 136
|
||||
"d:\Projects\C\cleonos\clks\include\clks\log.h", "C++", 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 19
|
||||
"d:\Projects\C\cleonos\clks\include\clks\mouse.h", "C++", 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 26
|
||||
"d:\Projects\C\cleonos\clks\include\clks\panic.h", "C++", 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 11
|
||||
"d:\Projects\C\cleonos\clks\include\clks\pmm.h", "C++", 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 21
|
||||
"d:\Projects\C\cleonos\clks\include\clks\ramdisk.h", "C++", 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 25
|
||||
"d:\Projects\C\cleonos\clks\include\clks\scheduler.h", "C++", 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 23
|
||||
"d:\Projects\C\cleonos\clks\include\clks\serial.h", "C++", 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 8
|
||||
"d:\Projects\C\cleonos\clks\include\clks\service.h", "C++", 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 39
|
||||
"d:\Projects\C\cleonos\clks\include\clks\shell.h", "C++", 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 10
|
||||
"d:\Projects\C\cleonos\clks\include\clks\string.h", "C++", 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 12
|
||||
"d:\Projects\C\cleonos\clks\include\clks\syscall.h", "C++", 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 96
|
||||
"d:\Projects\C\cleonos\clks\include\clks\task.h", "C++", 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 26
|
||||
"d:\Projects\C\cleonos\clks\include\clks\tty.h", "C++", 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 19
|
||||
"d:\Projects\C\cleonos\clks\include\clks\types.h", "C++", 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20
|
||||
"d:\Projects\C\cleonos\clks\include\clks\userland.h", "C++", 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 16
|
||||
"d:\Projects\C\cleonos\clks\kernel\boot\limine\limine_requests.c", "C", 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 102
|
||||
"d:\Projects\C\cleonos\clks\kernel\core\interrupts.c", "C", 0, 0, 0, 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 350
|
||||
"d:\Projects\C\cleonos\clks\kernel\core\kmain.c", "C", 0, 0, 0, 388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 77, 466
|
||||
"d:\Projects\C\cleonos\clks\kernel\core\log.c", "C", 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 227
|
||||
"d:\Projects\C\cleonos\clks\kernel\core\panic.c", "C", 0, 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 682
|
||||
"d:\Projects\C\cleonos\clks\kernel\core\scheduler.c", "C", 0, 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 180
|
||||
"d:\Projects\C\cleonos\clks\kernel\core\service.c", "C", 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 141
|
||||
"d:\Projects\C\cleonos\clks\kernel\hal\audio\pcspeaker.c", "C", 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 126
|
||||
"d:\Projects\C\cleonos\clks\kernel\hal\serial\serial.c", "C", 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67
|
||||
"d:\Projects\C\cleonos\clks\kernel\hal\video\font8x8.c", "C", 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 53
|
||||
"d:\Projects\C\cleonos\clks\kernel\hal\video\font8x8.h", "C++", 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8
|
||||
"d:\Projects\C\cleonos\clks\kernel\hal\video\framebuffer.c", "C", 0, 0, 0, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 316
|
||||
"d:\Projects\C\cleonos\clks\kernel\hal\video\psf_font.c", "C", 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 259
|
||||
"d:\Projects\C\cleonos\clks\kernel\hal\video\psf_font.h", "C++", 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 20
|
||||
"d:\Projects\C\cleonos\clks\kernel\input\keyboard.c", "C", 0, 0, 0, 370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 465
|
||||
"d:\Projects\C\cleonos\clks\kernel\input\mouse.c", "C", 0, 0, 0, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 306
|
||||
"d:\Projects\C\cleonos\clks\kernel\interface\desktop.c", "C", 0, 0, 0, 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 407
|
||||
"d:\Projects\C\cleonos\clks\kernel\interface\shell.c", "C", 0, 0, 0, 1232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 316, 1548
|
||||
"d:\Projects\C\cleonos\clks\kernel\interface\tty.c", "C", 0, 0, 0, 1137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 288, 1425
|
||||
"d:\Projects\C\cleonos\clks\kernel\memory\heap.c", "C", 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 181
|
||||
"d:\Projects\C\cleonos\clks\kernel\memory\pmm.c", "C", 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 105
|
||||
"d:\Projects\C\cleonos\clks\kernel\runtime\driver.c", "C", 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 215
|
||||
"d:\Projects\C\cleonos\clks\kernel\runtime\elf64.c", "C", 0, 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 84, 364
|
||||
"d:\Projects\C\cleonos\clks\kernel\runtime\elfrunner.c", "C", 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 38
|
||||
"d:\Projects\C\cleonos\clks\kernel\runtime\exec.c", "C", 0, 0, 0, 2179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 595, 2775
|
||||
"d:\Projects\C\cleonos\clks\kernel\runtime\kelf.c", "C", 0, 0, 0, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 52, 251
|
||||
"d:\Projects\C\cleonos\clks\kernel\runtime\syscall.c", "C", 0, 0, 0, 2021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 507, 2528
|
||||
"d:\Projects\C\cleonos\clks\kernel\runtime\userland.c", "C", 0, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 184
|
||||
"d:\Projects\C\cleonos\clks\kernel\storage\fs.c", "C", 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 906
|
||||
"d:\Projects\C\cleonos\clks\kernel\storage\ramdisk.c", "C", 0, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 222
|
||||
"d:\Projects\C\cleonos\clks\kernel\support\libc_compat.c", "C", 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 32
|
||||
"d:\Projects\C\cleonos\clks\kernel\support\string.c", "C", 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 70
|
||||
"d:\Projects\C\cleonos\clks\rust\src\lib.rs", "Rust", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 6, 27
|
||||
"d:\Projects\C\cleonos\cmake\check_tools.cmake", "CMake", 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 41
|
||||
"d:\Projects\C\cleonos\cmake\gen_kernel_symbols.cmake", "CMake", 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 106
|
||||
"d:\Projects\C\cleonos\cmake\log.cmake", "CMake", 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 36
|
||||
"d:\Projects\C\cleonos\cmake\log_emit.cmake", "CMake", 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 29
|
||||
"d:\Projects\C\cleonos\cmake\setup_limine.cmake", "CMake", 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 119
|
||||
"d:\Projects\C\cleonos\configs\limine.conf", "Properties", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 7
|
||||
"d:\Projects\C\cleonos\configs\menuconfig\clks_features.json", "JSON", 0, 0, 0, 0, 0, 0, 0, 0, 0, 376, 0, 0, 0, 0, 0, 0, 0, 0, 1, 377
|
||||
"d:\Projects\C\cleonos\docs\README.md", "Markdown", 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 35
|
||||
"d:\Projects\C\cleonos\docs\stage1.md", "Markdown", 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 46
|
||||
"d:\Projects\C\cleonos\docs\stage10.md", "Markdown", 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 40
|
||||
"d:\Projects\C\cleonos\docs\stage11.md", "Markdown", 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 41
|
||||
"d:\Projects\C\cleonos\docs\stage12.md", "Markdown", 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 46
|
||||
"d:\Projects\C\cleonos\docs\stage13.md", "Markdown", 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 40
|
||||
"d:\Projects\C\cleonos\docs\stage14.md", "Markdown", 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 52
|
||||
"d:\Projects\C\cleonos\docs\stage15.md", "Markdown", 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 54
|
||||
"d:\Projects\C\cleonos\docs\stage2.md", "Markdown", 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 35
|
||||
"d:\Projects\C\cleonos\docs\stage20.md", "Markdown", 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 52
|
||||
"d:\Projects\C\cleonos\docs\stage21.md", "Markdown", 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 79
|
||||
"d:\Projects\C\cleonos\docs\stage22.md", "Markdown", 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 75
|
||||
"d:\Projects\C\cleonos\docs\stage23.md", "Markdown", 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 47
|
||||
"d:\Projects\C\cleonos\docs\stage24.md", "Markdown", 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 49
|
||||
"d:\Projects\C\cleonos\docs\stage25.md", "Markdown", 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 65
|
||||
"d:\Projects\C\cleonos\docs\stage26.md", "Markdown", 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 39
|
||||
"d:\Projects\C\cleonos\docs\stage27.md", "Markdown", 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 39
|
||||
"d:\Projects\C\cleonos\docs\stage28.md", "Markdown", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 44
|
||||
"d:\Projects\C\cleonos\docs\stage29.md", "Markdown", 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 40
|
||||
"d:\Projects\C\cleonos\docs\stage3.md", "Markdown", 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 34
|
||||
"d:\Projects\C\cleonos\docs\stage4.md", "Markdown", 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 35
|
||||
"d:\Projects\C\cleonos\docs\stage5.md", "Markdown", 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 34
|
||||
"d:\Projects\C\cleonos\docs\stage6.md", "Markdown", 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 36
|
||||
"d:\Projects\C\cleonos\docs\stage7.md", "Markdown", 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 40
|
||||
"d:\Projects\C\cleonos\docs\stage8.md", "Markdown", 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 37
|
||||
"d:\Projects\C\cleonos\docs\stage9.md", "Markdown", 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 37
|
||||
"d:\Projects\C\cleonos\docs\syscall.md", "Markdown", 0, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 705
|
||||
"d:\Projects\C\cleonos\limine\.github\dependabot.yml", "YAML", 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8
|
||||
"d:\Projects\C\cleonos\limine\.github\workflows\binary-release.yml", "YAML", 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 99
|
||||
"d:\Projects\C\cleonos\limine\.github\workflows\check.yml", "YAML", 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 46
|
||||
"d:\Projects\C\cleonos\limine\.github\workflows\pr_branch_check.yml", "YAML", 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 16
|
||||
"d:\Projects\C\cleonos\limine\.github\workflows\qa.yml", "YAML", 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 19
|
||||
"d:\Projects\C\cleonos\limine\.github\workflows\release.yml", "YAML", 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 81
|
||||
"d:\Projects\C\cleonos\limine\3RDPARTY.md", "Markdown", 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 68
|
||||
"d:\Projects\C\cleonos\limine\CONFIG.md", "Markdown", 0, 0, 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 373
|
||||
"d:\Projects\C\cleonos\limine\FAQ.md", "Markdown", 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 36
|
||||
"d:\Projects\C\cleonos\limine\INSTALL.md", "Markdown", 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 52
|
||||
"d:\Projects\C\cleonos\limine\README.md", "Markdown", 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 103
|
||||
"d:\Projects\C\cleonos\limine\USAGE.md", "Markdown", 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 108
|
||||
"d:\Projects\C\cleonos\limine\common\common.mk", "Makefile", 0, 0, 0, 0, 0, 0, 0, 562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 677
|
||||
"d:\Projects\C\cleonos\limine\common\crypt\blake2b.c", "C", 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 39, 221
|
||||
"d:\Projects\C\cleonos\limine\common\crypt\blake2b.h", "C++", 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 11
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\disk.h", "C++", 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 27
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\disk.s2.c", "C", 0, 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 178, 857
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\edid.c", "C", 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 86
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\edid.h", "C++", 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 44
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\gop.c", "C", 0, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 73, 382
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\gop.h", "C++", 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 20
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\serial.c", "C", 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 13, 51
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\serial.h", "C++", 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 16
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\vbe.c", "C", 0, 0, 0, 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 53, 368
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\vbe.h", "C++", 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 16
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\vga_textmode.c", "C", 0, 0, 0, 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 71, 370
|
||||
"d:\Projects\C\cleonos\limine\common\drivers\vga_textmode.h", "C++", 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 36
|
||||
"d:\Projects\C\cleonos\limine\common\entry.s2.c", "C", 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 28, 135
|
||||
"d:\Projects\C\cleonos\limine\common\entry.s3.c", "C", 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 249
|
||||
"d:\Projects\C\cleonos\limine\common\fs\fat32.h", "C++", 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 12
|
||||
"d:\Projects\C\cleonos\limine\common\fs\fat32.s2.c", "C", 0, 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 111, 727
|
||||
"d:\Projects\C\cleonos\limine\common\fs\file.h", "C++", 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 46
|
||||
"d:\Projects\C\cleonos\limine\common\fs\file.s2.c", "C", 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 185
|
||||
"d:\Projects\C\cleonos\limine\common\fs\iso9660.h", "C++", 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 11
|
||||
"d:\Projects\C\cleonos\limine\common\fs\iso9660.s2.c", "C", 0, 0, 0, 407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 94, 539
|
||||
"d:\Projects\C\cleonos\limine\common\gensyms.sh", "Shell Script", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 2, 17, 52
|
||||
"d:\Projects\C\cleonos\limine\common\lib\acpi.c", "C", 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 102, 473
|
||||
"d:\Projects\C\cleonos\limine\common\lib\acpi.h", "C++", 0, 0, 0, 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 30, 217
|
||||
"d:\Projects\C\cleonos\limine\common\lib\bli.c", "C", 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 20, 91
|
||||
"d:\Projects\C\cleonos\limine\common\lib\bli.h", "C++", 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 12
|
||||
"d:\Projects\C\cleonos\limine\common\lib\config.c", "C", 0, 0, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 126, 765
|
||||
"d:\Projects\C\cleonos\limine\common\lib\config.h", "C++", 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 37
|
||||
"d:\Projects\C\cleonos\limine\common\lib\elf.c", "C", 0, 0, 0, 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 212, 1203
|
||||
"d:\Projects\C\cleonos\limine\common\lib\elf.h", "C++", 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 88
|
||||
"d:\Projects\C\cleonos\limine\common\lib\elsewhere.c", "C", 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 17, 105
|
||||
"d:\Projects\C\cleonos\limine\common\lib\elsewhere.h", "C++", 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 21
|
||||
"d:\Projects\C\cleonos\limine\common\lib\fb.c", "C", 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 17, 174
|
||||
"d:\Projects\C\cleonos\limine\common\lib\fb.h", "C++", 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 48
|
||||
"d:\Projects\C\cleonos\limine\common\lib\fdt.c", "C", 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 45
|
||||
"d:\Projects\C\cleonos\limine\common\lib\fdt.h", "C++", 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 16
|
||||
"d:\Projects\C\cleonos\limine\common\lib\getchar.c", "C", 0, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 59, 366
|
||||
"d:\Projects\C\cleonos\limine\common\lib\getchar.h", "C++", 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 29
|
||||
"d:\Projects\C\cleonos\limine\common\lib\gterm.c", "C", 0, 0, 0, 813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 118, 940
|
||||
"d:\Projects\C\cleonos\limine\common\lib\gterm.h", "C++", 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 35
|
||||
"d:\Projects\C\cleonos\limine\common\lib\guid.c", "C", 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 96
|
||||
"d:\Projects\C\cleonos\limine\common\lib\guid.h", "C++", 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 21
|
||||
"d:\Projects\C\cleonos\limine\common\lib\image.c", "C", 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 18, 72
|
||||
"d:\Projects\C\cleonos\limine\common\lib\image.h", "C++", 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 33
|
||||
"d:\Projects\C\cleonos\limine\common\lib\libc.c", "C", 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 15, 132
|
||||
"d:\Projects\C\cleonos\limine\common\lib\libc.h", "C++", 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 37
|
||||
"d:\Projects\C\cleonos\limine\common\lib\libc.s2.c", "C", 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 26, 150
|
||||
"d:\Projects\C\cleonos\limine\common\lib\macros.aarch64_asm.h", "C++", 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 53
|
||||
"d:\Projects\C\cleonos\limine\common\lib\memory.s2.c", "C", 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 54
|
||||
"d:\Projects\C\cleonos\limine\common\lib\misc.c", "C", 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 90, 420
|
||||
"d:\Projects\C\cleonos\limine\common\lib\misc.h", "C++", 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 154
|
||||
"d:\Projects\C\cleonos\limine\common\lib\misc.s2.c", "C", 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 129
|
||||
"d:\Projects\C\cleonos\limine\common\lib\panic.s2.c", "C", 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 90
|
||||
"d:\Projects\C\cleonos\limine\common\lib\part.h", "C++", 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23, 111
|
||||
"d:\Projects\C\cleonos\limine\common\lib\part.s2.c", "C", 0, 0, 0, 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 121, 616
|
||||
"d:\Projects\C\cleonos\limine\common\lib\pe.c", "C", 0, 0, 0, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 98, 501
|
||||
"d:\Projects\C\cleonos\limine\common\lib\pe.h", "C++", 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13
|
||||
"d:\Projects\C\cleonos\limine\common\lib\print.h", "C++", 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 17
|
||||
"d:\Projects\C\cleonos\limine\common\lib\print.s2.c", "C", 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 236
|
||||
"d:\Projects\C\cleonos\limine\common\lib\rand.c", "C", 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 25, 142
|
||||
"d:\Projects\C\cleonos\limine\common\lib\rand.h", "C++", 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 12
|
||||
"d:\Projects\C\cleonos\limine\common\lib\real.h", "C++", 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 35
|
||||
"d:\Projects\C\cleonos\limine\common\lib\stb_image.c", "C", 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\limine\common\lib\term.c", "C", 0, 0, 0, 266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 49, 320
|
||||
"d:\Projects\C\cleonos\limine\common\lib\term.h", "C++", 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 60
|
||||
"d:\Projects\C\cleonos\limine\common\lib\time.c", "C", 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 15, 76
|
||||
"d:\Projects\C\cleonos\limine\common\lib\time.h", "C++", 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 9
|
||||
"d:\Projects\C\cleonos\limine\common\lib\trace.h", "C++", 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 9
|
||||
"d:\Projects\C\cleonos\limine\common\lib\trace.s2.c", "C", 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 88
|
||||
"d:\Projects\C\cleonos\limine\common\lib\uri.c", "C", 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 54, 287
|
||||
"d:\Projects\C\cleonos\limine\common\lib\uri.h", "C++", 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 11
|
||||
"d:\Projects\C\cleonos\limine\common\libc-compat\stdlib.h", "C++", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\limine\common\libc-compat\string.h", "C++", 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 24
|
||||
"d:\Projects\C\cleonos\limine\common\menu.c", "C", 0, 0, 0, 1378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 150, 1558
|
||||
"d:\Projects\C\cleonos\limine\common\menu.h", "C++", 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 21
|
||||
"d:\Projects\C\cleonos\limine\common\mm\mtrr.c", "C", 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 32, 141
|
||||
"d:\Projects\C\cleonos\limine\common\mm\mtrr.h", "C++", 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 12
|
||||
"d:\Projects\C\cleonos\limine\common\mm\pmm.c", "C", 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 16, 89
|
||||
"d:\Projects\C\cleonos\limine\common\mm\pmm.h", "C++", 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 81
|
||||
"d:\Projects\C\cleonos\limine\common\mm\pmm.s2.c", "C", 0, 0, 0, 662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 192, 891
|
||||
"d:\Projects\C\cleonos\limine\common\mm\vmm.c", "C", 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 110, 556
|
||||
"d:\Projects\C\cleonos\limine\common\mm\vmm.h", "C++", 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 45, 176
|
||||
"d:\Projects\C\cleonos\limine\common\protos\chainload.c", "C", 0, 0, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 78, 368
|
||||
"d:\Projects\C\cleonos\limine\common\protos\chainload.h", "C++", 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 9
|
||||
"d:\Projects\C\cleonos\limine\common\protos\efi_boot_entry.c", "C", 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 26, 126
|
||||
"d:\Projects\C\cleonos\limine\common\protos\efi_boot_entry.h", "C++", 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 9
|
||||
"d:\Projects\C\cleonos\limine\common\protos\limine.c", "C", 0, 0, 0, 1523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 331, 1934
|
||||
"d:\Projects\C\cleonos\limine\common\protos\limine.h", "C++", 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 9
|
||||
"d:\Projects\C\cleonos\limine\common\protos\linux.h", "C++", 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 14, 74
|
||||
"d:\Projects\C\cleonos\limine\common\protos\linux_risc.c", "C", 0, 0, 0, 412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 99, 533
|
||||
"d:\Projects\C\cleonos\limine\common\protos\linux_x86.c", "C", 0, 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 96, 664
|
||||
"d:\Projects\C\cleonos\limine\common\protos\multiboot.h", "C++", 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 18
|
||||
"d:\Projects\C\cleonos\limine\common\protos\multiboot1.c", "C", 0, 0, 0, 394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 105, 513
|
||||
"d:\Projects\C\cleonos\limine\common\protos\multiboot1.h", "C++", 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 101
|
||||
"d:\Projects\C\cleonos\limine\common\protos\multiboot2.c", "C", 0, 0, 0, 782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 182, 1041
|
||||
"d:\Projects\C\cleonos\limine\common\protos\multiboot2.h", "C++", 0, 0, 0, 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 58, 419
|
||||
"d:\Projects\C\cleonos\limine\common\pxe\pxe.h", "C++", 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 112
|
||||
"d:\Projects\C\cleonos\limine\common\pxe\pxe.s2.c", "C", 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 18, 73
|
||||
"d:\Projects\C\cleonos\limine\common\pxe\tftp.h", "C++", 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 47
|
||||
"d:\Projects\C\cleonos\limine\common\pxe\tftp.s2.c", "C", 0, 0, 0, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 52, 268
|
||||
"d:\Projects\C\cleonos\limine\common\stb_image.patch", "Diff", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 7, 10, 91
|
||||
"d:\Projects\C\cleonos\limine\common\sys\a20.h", "C++", 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10
|
||||
"d:\Projects\C\cleonos\limine\common\sys\a20.s2.c", "C", 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 21, 93
|
||||
"d:\Projects\C\cleonos\limine\common\sys\cpu.h", "C++", 0, 0, 0, 0, 0, 0, 429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 82, 513
|
||||
"d:\Projects\C\cleonos\limine\common\sys\cpu.s2.c", "C", 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 14, 78
|
||||
"d:\Projects\C\cleonos\limine\common\sys\cpu_riscv.c", "C", 0, 0, 0, 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 65, 428
|
||||
"d:\Projects\C\cleonos\limine\common\sys\e820.h", "C++", 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 14
|
||||
"d:\Projects\C\cleonos\limine\common\sys\e820.s2.c", "C", 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 45
|
||||
"d:\Projects\C\cleonos\limine\common\sys\exceptions.s2.c", "C", 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 51
|
||||
"d:\Projects\C\cleonos\limine\common\sys\gdt.h", "C++", 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 30
|
||||
"d:\Projects\C\cleonos\limine\common\sys\gdt.s2.c", "C", 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 96
|
||||
"d:\Projects\C\cleonos\limine\common\sys\idt.c", "C", 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 16, 72
|
||||
"d:\Projects\C\cleonos\limine\common\sys\idt.h", "C++", 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 60
|
||||
"d:\Projects\C\cleonos\limine\common\sys\idt.s2.c", "C", 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 36
|
||||
"d:\Projects\C\cleonos\limine\common\sys\iommu.c", "C", 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 30, 145
|
||||
"d:\Projects\C\cleonos\limine\common\sys\iommu.h", "C++", 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7
|
||||
"d:\Projects\C\cleonos\limine\common\sys\lapic.c", "C", 0, 0, 0, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 69, 512
|
||||
"d:\Projects\C\cleonos\limine\common\sys\lapic.h", "C++", 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 39
|
||||
"d:\Projects\C\cleonos\limine\common\sys\pic.c", "C", 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 11, 49
|
||||
"d:\Projects\C\cleonos\limine\common\sys\pic.h", "C++", 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 12
|
||||
"d:\Projects\C\cleonos\limine\common\sys\sbi.h", "C++", 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 33
|
||||
"d:\Projects\C\cleonos\limine\common\sys\smp.c", "C", 0, 0, 0, 917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 259, 1230
|
||||
"d:\Projects\C\cleonos\limine\common\sys\smp.h", "C++", 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 51
|
||||
"d:\Projects\C\cleonos\limine\decompressor\decompressor.mk", "Makefile", 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 85
|
||||
"d:\Projects\C\cleonos\limine\decompressor\main.c", "C", 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 38
|
||||
"d:\Projects\C\cleonos\limine\decompressor\memory.c", "C", 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 54
|
||||
"d:\Projects\C\cleonos\limine\decompressor\tinf.patch", "Diff", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 3, 10, 55
|
||||
"d:\Projects\C\cleonos\limine\host\hgen.sh", "Shell Script", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 1, 6, 17
|
||||
"d:\Projects\C\cleonos\limine\host\host.mk", "Makefile", 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20
|
||||
"d:\Projects\C\cleonos\limine\host\limine.c", "C", 0, 0, 0, 1192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 225, 1449
|
||||
"d:\Projects\C\cleonos\limine\test.mk", "Makefile", 0, 0, 0, 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 279
|
||||
"d:\Projects\C\cleonos\limine\test\e9print.c", "C", 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 99
|
||||
"d:\Projects\C\cleonos\limine\test\e9print.h", "C++", 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 10
|
||||
"d:\Projects\C\cleonos\limine\test\limine.c", "C", 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 706
|
||||
"d:\Projects\C\cleonos\limine\test\limine.conf", "Properties", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 1, 19, 60
|
||||
"d:\Projects\C\cleonos\limine\test\memory.c", "C", 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 53
|
||||
"d:\Projects\C\cleonos\limine\test\multiboot.c", "C", 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 24, 93
|
||||
"d:\Projects\C\cleonos\limine\test\multiboot2.c", "C", 0, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 36, 182
|
||||
"d:\Projects\C\cleonos\limine\test\test.mk", "Makefile", 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 164
|
||||
"d:\Projects\C\cleonos\limine\version.sh", "Shell Script", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 1, 10, 30
|
||||
"d:\Projects\C\cleonos\ramdisk\dev\random", "C++", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1
|
||||
"d:\Projects\C\cleonos\ramdisk\shell\init.cmd", "Batch", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 6
|
||||
"d:\Projects\C\cleonos\scripts\gen-tty-psf.ps1", "PowerShell", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 2, 42, 215
|
||||
"d:\Projects\C\cleonos\scripts\menuconfig.py", "Python", 0, 0, 0, 0, 1608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 304, 1936
|
||||
"d:\Projects\C\cleonos\wine\README.md", "Markdown", 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 72
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine.py", "Python", 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 7
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\__init__.py", "Python", 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\cli.py", "Python", 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 54
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\constants.py", "Python", 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 14, 130
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\input_pump.py", "Python", 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 99
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\platform.py", "Python", 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 60
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\runner.py", "Python", 0, 0, 0, 0, 1459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266, 1725
|
||||
"d:\Projects\C\cleonos\wine\cleonos_wine_lib\state.py", "Python", 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 71, 355
|
||||
"d:\Projects\C\cleonos\wine\requirements.txt", "pip requirements", 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2
|
||||
"Total", "-", 395, 1, 2390, 88779, 3649, 1173, 9135, 1216, 339, 376, 46, 44, 4, 148, 62, 116, 171, 13937, 27927, 149908
|
||||
|
1
.VSCodeCounter/2026-04-21_02-41-45/results.json
Normal file
1
.VSCodeCounter/2026-04-21_02-41-45/results.json
Normal file
File diff suppressed because one or more lines are too long
112
.VSCodeCounter/2026-04-21_02-41-45/results.md
Normal file
112
.VSCodeCounter/2026-04-21_02-41-45/results.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# Summary
|
||||
|
||||
Date : 2026-04-21 02:41:45
|
||||
|
||||
Directory d:\\Projects\\C\\cleonos
|
||||
|
||||
Total : 569 files, 108044 codes, 13937 comments, 27927 blanks, all 149908 lines
|
||||
|
||||
Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
|
||||
|
||||
## Languages
|
||||
| language | files | code | comment | blank | total |
|
||||
| :--- | ---: | ---: | ---: | ---: | ---: |
|
||||
| C | 283 | 88,779 | 10,486 | 22,672 | 121,937 |
|
||||
| C++ | 203 | 9,135 | 3,395 | 3,320 | 15,850 |
|
||||
| Python | 9 | 3,649 | 31 | 691 | 4,371 |
|
||||
| Markdown | 37 | 2,390 | 0 | 618 | 3,008 |
|
||||
| Makefile | 7 | 1,216 | 7 | 211 | 1,434 |
|
||||
| CMake | 6 | 1,173 | 0 | 172 | 1,345 |
|
||||
| YAML | 8 | 395 | 1 | 89 | 485 |
|
||||
| JSON | 1 | 376 | 0 | 1 | 377 |
|
||||
| XML | 1 | 339 | 0 | 0 | 339 |
|
||||
| PowerShell | 1 | 171 | 2 | 42 | 215 |
|
||||
| Go Assembly | 2 | 148 | 0 | 20 | 168 |
|
||||
| Diff | 2 | 116 | 10 | 20 | 146 |
|
||||
| Shell Script | 3 | 62 | 4 | 33 | 99 |
|
||||
| Properties | 2 | 46 | 1 | 20 | 67 |
|
||||
| Rust | 2 | 44 | 0 | 15 | 59 |
|
||||
| Batch | 1 | 4 | 0 | 2 | 6 |
|
||||
| pip requirements | 1 | 1 | 0 | 1 | 2 |
|
||||
|
||||
## Directories
|
||||
| path | files | code | comment | blank | total |
|
||||
| :--- | ---: | ---: | ---: | ---: | ---: |
|
||||
| . | 569 | 108,044 | 13,937 | 27,927 | 149,908 |
|
||||
| . (Files) | 4 | 1,220 | 0 | 200 | 1,420 |
|
||||
| .github | 2 | 185 | 1 | 30 | 216 |
|
||||
| .github\\workflows | 2 | 185 | 1 | 30 | 216 |
|
||||
| cleonos | 292 | 62,603 | 12,967 | 17,554 | 93,124 |
|
||||
| cleonos\\c | 96 | 15,172 | 451 | 3,720 | 19,343 |
|
||||
| cleonos\\c (Files) | 1 | 3 | 4 | 2 | 9 |
|
||||
| cleonos\\c\\apps | 80 | 13,349 | 447 | 3,232 | 17,028 |
|
||||
| cleonos\\c\\apps (Files) | 68 | 7,370 | 2 | 1,778 | 9,150 |
|
||||
| cleonos\\c\\apps\\doom | 3 | 1,366 | 1 | 328 | 1,695 |
|
||||
| cleonos\\c\\apps\\qrcode | 2 | 821 | 444 | 130 | 1,395 |
|
||||
| cleonos\\c\\apps\\shell | 7 | 3,792 | 0 | 996 | 4,788 |
|
||||
| cleonos\\c\\include | 8 | 326 | 0 | 47 | 373 |
|
||||
| cleonos\\c\\src | 7 | 1,494 | 0 | 439 | 1,933 |
|
||||
| cleonos\\rust | 1 | 23 | 0 | 9 | 32 |
|
||||
| cleonos\\rust\\src | 1 | 23 | 0 | 9 | 32 |
|
||||
| cleonos\\third-party | 195 | 47,408 | 12,516 | 13,825 | 73,749 |
|
||||
| cleonos\\third-party\\doomgeneric | 195 | 47,408 | 12,516 | 13,825 | 73,749 |
|
||||
| cleonos\\third-party\\doomgeneric (Files) | 1 | 51 | 0 | 17 | 68 |
|
||||
| cleonos\\third-party\\doomgeneric\\doomgeneric | 194 | 47,357 | 12,516 | 13,808 | 73,681 |
|
||||
| clks | 69 | 12,762 | 4 | 3,358 | 16,124 |
|
||||
| clks\\arch | 4 | 160 | 0 | 22 | 182 |
|
||||
| clks\\arch\\aarch64 | 1 | 6 | 0 | 1 | 7 |
|
||||
| clks\\arch\\aarch64\\startup | 1 | 6 | 0 | 1 | 7 |
|
||||
| clks\\arch\\x86_64 | 3 | 154 | 0 | 21 | 175 |
|
||||
| clks\\arch\\x86_64\\interrupt | 1 | 108 | 0 | 12 | 120 |
|
||||
| clks\\arch\\x86_64\\startup | 2 | 46 | 0 | 9 | 55 |
|
||||
| clks\\include | 32 | 718 | 0 | 178 | 896 |
|
||||
| clks\\include\\clks | 32 | 718 | 0 | 178 | 896 |
|
||||
| clks\\kernel | 32 | 11,863 | 4 | 3,152 | 15,019 |
|
||||
| clks\\kernel\\boot | 1 | 76 | 0 | 26 | 102 |
|
||||
| clks\\kernel\\boot\\limine | 1 | 76 | 0 | 26 | 102 |
|
||||
| clks\\kernel\\core | 6 | 1,644 | 1 | 401 | 2,046 |
|
||||
| clks\\kernel\\hal | 7 | 667 | 0 | 182 | 849 |
|
||||
| clks\\kernel\\hal\\audio | 1 | 101 | 0 | 25 | 126 |
|
||||
| clks\\kernel\\hal\\serial | 1 | 51 | 0 | 16 | 67 |
|
||||
| clks\\kernel\\hal\\video | 5 | 515 | 0 | 141 | 656 |
|
||||
| clks\\kernel\\input | 2 | 613 | 0 | 158 | 771 |
|
||||
| clks\\kernel\\interface | 3 | 2,690 | 0 | 690 | 3,380 |
|
||||
| clks\\kernel\\memory | 2 | 219 | 0 | 67 | 286 |
|
||||
| clks\\kernel\\runtime | 7 | 5,019 | 3 | 1,333 | 6,355 |
|
||||
| clks\\kernel\\storage | 2 | 856 | 0 | 272 | 1,128 |
|
||||
| clks\\kernel\\support | 2 | 79 | 0 | 23 | 102 |
|
||||
| clks\\rust | 1 | 21 | 0 | 6 | 27 |
|
||||
| clks\\rust\\src | 1 | 21 | 0 | 6 | 27 |
|
||||
| cmake | 5 | 267 | 0 | 64 | 331 |
|
||||
| configs | 2 | 382 | 0 | 2 | 384 |
|
||||
| configs (Files) | 1 | 6 | 0 | 1 | 7 |
|
||||
| configs\\menuconfig | 1 | 376 | 0 | 1 | 377 |
|
||||
| docs | 27 | 1,511 | 0 | 365 | 1,876 |
|
||||
| limine | 154 | 25,236 | 932 | 5,598 | 31,766 |
|
||||
| limine (Files) | 8 | 873 | 1 | 175 | 1,049 |
|
||||
| limine\\.github | 6 | 210 | 0 | 59 | 269 |
|
||||
| limine\\.github (Files) | 1 | 7 | 0 | 1 | 8 |
|
||||
| limine\\.github\\workflows | 5 | 203 | 0 | 58 | 261 |
|
||||
| limine\\common | 125 | 21,620 | 875 | 4,868 | 27,363 |
|
||||
| limine\\common (Files) | 7 | 2,368 | 40 | 375 | 2,783 |
|
||||
| limine\\common\\crypt | 2 | 185 | 3 | 44 | 232 |
|
||||
| limine\\common\\drivers | 12 | 1,763 | 50 | 460 | 2,273 |
|
||||
| limine\\common\\fs | 6 | 1,200 | 77 | 243 | 1,520 |
|
||||
| limine\\common\\lib | 49 | 6,940 | 201 | 1,515 | 8,656 |
|
||||
| limine\\common\\libc-compat | 2 | 23 | 0 | 8 | 31 |
|
||||
| limine\\common\\mm | 7 | 1,434 | 94 | 418 | 1,946 |
|
||||
| limine\\common\\protos | 14 | 4,509 | 278 | 1,031 | 5,818 |
|
||||
| limine\\common\\pxe | 4 | 396 | 7 | 97 | 500 |
|
||||
| limine\\common\\sys | 22 | 2,802 | 125 | 677 | 3,604 |
|
||||
| limine\\decompressor | 4 | 184 | 5 | 43 | 232 |
|
||||
| limine\\host | 3 | 1,216 | 33 | 237 | 1,486 |
|
||||
| limine\\test | 8 | 1,133 | 18 | 216 | 1,367 |
|
||||
| ramdisk | 2 | 4 | 0 | 3 | 7 |
|
||||
| ramdisk\\dev | 1 | 0 | 0 | 1 | 1 |
|
||||
| ramdisk\\shell | 1 | 4 | 0 | 2 | 6 |
|
||||
| scripts | 2 | 1,779 | 26 | 346 | 2,151 |
|
||||
| wine | 10 | 2,095 | 7 | 407 | 2,509 |
|
||||
| wine (Files) | 3 | 57 | 1 | 23 | 81 |
|
||||
| wine\\cleonos_wine_lib | 7 | 2,038 | 6 | 384 | 2,428 |
|
||||
|
||||
Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
|
||||
684
.VSCodeCounter/2026-04-21_02-41-45/results.txt
Normal file
684
.VSCodeCounter/2026-04-21_02-41-45/results.txt
Normal file
@@ -0,0 +1,684 @@
|
||||
Date : 2026-04-21 02:41:45
|
||||
Directory : d:\Projects\C\cleonos
|
||||
Total : 569 files, 108044 codes, 13937 comments, 27927 blanks, all 149908 lines
|
||||
|
||||
Languages
|
||||
+------------------+------------+------------+------------+------------+------------+
|
||||
| language | files | code | comment | blank | total |
|
||||
+------------------+------------+------------+------------+------------+------------+
|
||||
| C | 283 | 88,779 | 10,486 | 22,672 | 121,937 |
|
||||
| C++ | 203 | 9,135 | 3,395 | 3,320 | 15,850 |
|
||||
| Python | 9 | 3,649 | 31 | 691 | 4,371 |
|
||||
| Markdown | 37 | 2,390 | 0 | 618 | 3,008 |
|
||||
| Makefile | 7 | 1,216 | 7 | 211 | 1,434 |
|
||||
| CMake | 6 | 1,173 | 0 | 172 | 1,345 |
|
||||
| YAML | 8 | 395 | 1 | 89 | 485 |
|
||||
| JSON | 1 | 376 | 0 | 1 | 377 |
|
||||
| XML | 1 | 339 | 0 | 0 | 339 |
|
||||
| PowerShell | 1 | 171 | 2 | 42 | 215 |
|
||||
| Go Assembly | 2 | 148 | 0 | 20 | 168 |
|
||||
| Diff | 2 | 116 | 10 | 20 | 146 |
|
||||
| Shell Script | 3 | 62 | 4 | 33 | 99 |
|
||||
| Properties | 2 | 46 | 1 | 20 | 67 |
|
||||
| Rust | 2 | 44 | 0 | 15 | 59 |
|
||||
| Batch | 1 | 4 | 0 | 2 | 6 |
|
||||
| pip requirements | 1 | 1 | 0 | 1 | 2 |
|
||||
+------------------+------------+------------+------------+------------+------------+
|
||||
|
||||
Directories
|
||||
+--------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||
| path | files | code | comment | blank | total |
|
||||
+--------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||
| . | 569 | 108,044 | 13,937 | 27,927 | 149,908 |
|
||||
| . (Files) | 4 | 1,220 | 0 | 200 | 1,420 |
|
||||
| .github | 2 | 185 | 1 | 30 | 216 |
|
||||
| .github\workflows | 2 | 185 | 1 | 30 | 216 |
|
||||
| cleonos | 292 | 62,603 | 12,967 | 17,554 | 93,124 |
|
||||
| cleonos\c | 96 | 15,172 | 451 | 3,720 | 19,343 |
|
||||
| cleonos\c (Files) | 1 | 3 | 4 | 2 | 9 |
|
||||
| cleonos\c\apps | 80 | 13,349 | 447 | 3,232 | 17,028 |
|
||||
| cleonos\c\apps (Files) | 68 | 7,370 | 2 | 1,778 | 9,150 |
|
||||
| cleonos\c\apps\doom | 3 | 1,366 | 1 | 328 | 1,695 |
|
||||
| cleonos\c\apps\qrcode | 2 | 821 | 444 | 130 | 1,395 |
|
||||
| cleonos\c\apps\shell | 7 | 3,792 | 0 | 996 | 4,788 |
|
||||
| cleonos\c\include | 8 | 326 | 0 | 47 | 373 |
|
||||
| cleonos\c\src | 7 | 1,494 | 0 | 439 | 1,933 |
|
||||
| cleonos\rust | 1 | 23 | 0 | 9 | 32 |
|
||||
| cleonos\rust\src | 1 | 23 | 0 | 9 | 32 |
|
||||
| cleonos\third-party | 195 | 47,408 | 12,516 | 13,825 | 73,749 |
|
||||
| cleonos\third-party\doomgeneric | 195 | 47,408 | 12,516 | 13,825 | 73,749 |
|
||||
| cleonos\third-party\doomgeneric (Files) | 1 | 51 | 0 | 17 | 68 |
|
||||
| cleonos\third-party\doomgeneric\doomgeneric | 194 | 47,357 | 12,516 | 13,808 | 73,681 |
|
||||
| clks | 69 | 12,762 | 4 | 3,358 | 16,124 |
|
||||
| clks\arch | 4 | 160 | 0 | 22 | 182 |
|
||||
| clks\arch\aarch64 | 1 | 6 | 0 | 1 | 7 |
|
||||
| clks\arch\aarch64\startup | 1 | 6 | 0 | 1 | 7 |
|
||||
| clks\arch\x86_64 | 3 | 154 | 0 | 21 | 175 |
|
||||
| clks\arch\x86_64\interrupt | 1 | 108 | 0 | 12 | 120 |
|
||||
| clks\arch\x86_64\startup | 2 | 46 | 0 | 9 | 55 |
|
||||
| clks\include | 32 | 718 | 0 | 178 | 896 |
|
||||
| clks\include\clks | 32 | 718 | 0 | 178 | 896 |
|
||||
| clks\kernel | 32 | 11,863 | 4 | 3,152 | 15,019 |
|
||||
| clks\kernel\boot | 1 | 76 | 0 | 26 | 102 |
|
||||
| clks\kernel\boot\limine | 1 | 76 | 0 | 26 | 102 |
|
||||
| clks\kernel\core | 6 | 1,644 | 1 | 401 | 2,046 |
|
||||
| clks\kernel\hal | 7 | 667 | 0 | 182 | 849 |
|
||||
| clks\kernel\hal\audio | 1 | 101 | 0 | 25 | 126 |
|
||||
| clks\kernel\hal\serial | 1 | 51 | 0 | 16 | 67 |
|
||||
| clks\kernel\hal\video | 5 | 515 | 0 | 141 | 656 |
|
||||
| clks\kernel\input | 2 | 613 | 0 | 158 | 771 |
|
||||
| clks\kernel\interface | 3 | 2,690 | 0 | 690 | 3,380 |
|
||||
| clks\kernel\memory | 2 | 219 | 0 | 67 | 286 |
|
||||
| clks\kernel\runtime | 7 | 5,019 | 3 | 1,333 | 6,355 |
|
||||
| clks\kernel\storage | 2 | 856 | 0 | 272 | 1,128 |
|
||||
| clks\kernel\support | 2 | 79 | 0 | 23 | 102 |
|
||||
| clks\rust | 1 | 21 | 0 | 6 | 27 |
|
||||
| clks\rust\src | 1 | 21 | 0 | 6 | 27 |
|
||||
| cmake | 5 | 267 | 0 | 64 | 331 |
|
||||
| configs | 2 | 382 | 0 | 2 | 384 |
|
||||
| configs (Files) | 1 | 6 | 0 | 1 | 7 |
|
||||
| configs\menuconfig | 1 | 376 | 0 | 1 | 377 |
|
||||
| docs | 27 | 1,511 | 0 | 365 | 1,876 |
|
||||
| limine | 154 | 25,236 | 932 | 5,598 | 31,766 |
|
||||
| limine (Files) | 8 | 873 | 1 | 175 | 1,049 |
|
||||
| limine\.github | 6 | 210 | 0 | 59 | 269 |
|
||||
| limine\.github (Files) | 1 | 7 | 0 | 1 | 8 |
|
||||
| limine\.github\workflows | 5 | 203 | 0 | 58 | 261 |
|
||||
| limine\common | 125 | 21,620 | 875 | 4,868 | 27,363 |
|
||||
| limine\common (Files) | 7 | 2,368 | 40 | 375 | 2,783 |
|
||||
| limine\common\crypt | 2 | 185 | 3 | 44 | 232 |
|
||||
| limine\common\drivers | 12 | 1,763 | 50 | 460 | 2,273 |
|
||||
| limine\common\fs | 6 | 1,200 | 77 | 243 | 1,520 |
|
||||
| limine\common\lib | 49 | 6,940 | 201 | 1,515 | 8,656 |
|
||||
| limine\common\libc-compat | 2 | 23 | 0 | 8 | 31 |
|
||||
| limine\common\mm | 7 | 1,434 | 94 | 418 | 1,946 |
|
||||
| limine\common\protos | 14 | 4,509 | 278 | 1,031 | 5,818 |
|
||||
| limine\common\pxe | 4 | 396 | 7 | 97 | 500 |
|
||||
| limine\common\sys | 22 | 2,802 | 125 | 677 | 3,604 |
|
||||
| limine\decompressor | 4 | 184 | 5 | 43 | 232 |
|
||||
| limine\host | 3 | 1,216 | 33 | 237 | 1,486 |
|
||||
| limine\test | 8 | 1,133 | 18 | 216 | 1,367 |
|
||||
| ramdisk | 2 | 4 | 0 | 3 | 7 |
|
||||
| ramdisk\dev | 1 | 0 | 0 | 1 | 1 |
|
||||
| ramdisk\shell | 1 | 4 | 0 | 2 | 6 |
|
||||
| scripts | 2 | 1,779 | 26 | 346 | 2,151 |
|
||||
| wine | 10 | 2,095 | 7 | 407 | 2,509 |
|
||||
| wine (Files) | 3 | 57 | 1 | 23 | 81 |
|
||||
| wine\cleonos_wine_lib | 7 | 2,038 | 6 | 384 | 2,428 |
|
||||
+--------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||
|
||||
Files
|
||||
+--------------------------------------------------------------------------------------------+------------------+------------+------------+------------+------------+
|
||||
| filename | language | code | comment | blank | total |
|
||||
+--------------------------------------------------------------------------------------------+------------------+------------+------------+------------+------------+
|
||||
| d:\Projects\C\cleonos\.github\workflows\build-os.yml | YAML | 76 | 1 | 11 | 88 |
|
||||
| d:\Projects\C\cleonos\.github\workflows\style-check.yml | YAML | 109 | 0 | 19 | 128 |
|
||||
| d:\Projects\C\cleonos\CMakeLists.txt | CMake | 906 | 0 | 108 | 1,014 |
|
||||
| d:\Projects\C\cleonos\Makefile | Makefile | 130 | 0 | 24 | 154 |
|
||||
| d:\Projects\C\cleonos\README.md | Markdown | 92 | 0 | 34 | 126 |
|
||||
| d:\Projects\C\cleonos\README.zh-CN.md | Markdown | 92 | 0 | 34 | 126 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\ansi_main.c | C | 45 | 0 | 9 | 54 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\ansitest_main.c | C | 145 | 0 | 33 | 178 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\append_main.c | C | 74 | 0 | 16 | 90 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\args_main.c | C | 49 | 0 | 13 | 62 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\bg_main.c | C | 101 | 0 | 26 | 127 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\bmpview_main.c | C | 331 | 0 | 81 | 412 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cat_main.c | C | 87 | 0 | 20 | 107 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cd_main.c | C | 54 | 0 | 13 | 67 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\clear_main.c | C | 39 | 0 | 9 | 48 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cmd_runtime.c | C | 459 | 0 | 139 | 598 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cmd_runtime.h | C++ | 80 | 0 | 19 | 99 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cp_main.c | C | 109 | 0 | 23 | 132 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\cut_main.c | C | 210 | 1 | 54 | 265 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\dltest_main.c | C | 38 | 0 | 11 | 49 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\dmesg_main.c | C | 64 | 0 | 16 | 80 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\doom\doom_compat.c | C | 1,196 | 0 | 277 | 1,473 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\doom\doom_shim.h | C++ | 17 | 1 | 3 | 21 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\doom\doomgeneric_clks.c | C | 153 | 0 | 48 | 201 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\doom_main.c | C | 66 | 0 | 16 | 82 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\elfrunner_kmain.c | C | 6 | 0 | 3 | 9 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\elfrunner_main.c | C | 6 | 0 | 3 | 9 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\exec_main.c | C | 87 | 0 | 20 | 107 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\exit_main.c | C | 54 | 0 | 12 | 66 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\fastfetch_main.c | C | 180 | 0 | 32 | 212 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\fg_main.c | C | 149 | 0 | 36 | 185 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\fsstat_main.c | C | 46 | 0 | 9 | 55 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\grep_main.c | C | 196 | 0 | 53 | 249 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\head_main.c | C | 165 | 0 | 46 | 211 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\hello_main.c | C | 5 | 0 | 2 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\help_main.c | C | 83 | 0 | 9 | 92 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\jobs_main.c | C | 120 | 0 | 26 | 146 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\kbdstat_main.c | C | 44 | 0 | 9 | 53 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\kdbg_main.c | C | 213 | 0 | 56 | 269 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\kill_main.c | C | 144 | 0 | 39 | 183 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\libctest_main.c | C | 219 | 0 | 39 | 258 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\libdemo_main.c | C | 19 | 0 | 6 | 25 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\ls_main.c | C | 266 | 0 | 79 | 345 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\memc_kmain.c | C | 6 | 0 | 3 | 9 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\memc_main.c | C | 8 | 0 | 3 | 11 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\memstat_main.c | C | 43 | 0 | 9 | 52 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\mkdir_main.c | C | 57 | 0 | 14 | 71 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\mv_main.c | C | 102 | 0 | 26 | 128 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\pid_main.c | C | 39 | 0 | 9 | 48 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\procstat_main.c | C | 202 | 0 | 43 | 245 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\ps_main.c | C | 160 | 0 | 35 | 195 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\pwd_main.c | C | 39 | 0 | 9 | 48 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\qrcode\qrcodegen.c | C | 759 | 176 | 96 | 1,031 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\qrcode\qrcodegen.h | C++ | 62 | 268 | 34 | 364 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\qrcode_main.c | C | 207 | 1 | 58 | 266 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\restart_main.c | C | 40 | 0 | 9 | 49 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\rm_main.c | C | 57 | 0 | 14 | 71 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_cmd.c | C | 2,499 | 0 | 633 | 3,132 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_external.c | C | 174 | 0 | 57 | 231 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_input.c | C | 567 | 0 | 148 | 715 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_internal.h | C++ | 100 | 0 | 19 | 119 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_path.c | C | 154 | 0 | 50 | 204 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_script.c | C | 35 | 0 | 12 | 47 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell\shell_util.c | C | 263 | 0 | 77 | 340 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shell_main.c | C | 18 | 0 | 6 | 24 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shstat_main.c | C | 45 | 0 | 9 | 54 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\shutdown_main.c | C | 40 | 0 | 9 | 49 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\sleep_main.c | C | 52 | 0 | 12 | 64 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\sort_main.c | C | 206 | 0 | 62 | 268 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\spawn_main.c | C | 76 | 0 | 18 | 94 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\spin_main.c | C | 12 | 0 | 4 | 16 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\stats_main.c | C | 103 | 0 | 15 | 118 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\sysstat_main.c | C | 341 | 0 | 45 | 386 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\tail_main.c | C | 191 | 0 | 53 | 244 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\taskstat_main.c | C | 43 | 0 | 9 | 52 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\top_main.c | C | 193 | 0 | 45 | 238 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\touch_main.c | C | 58 | 0 | 14 | 72 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\tty_main.c | C | 64 | 0 | 15 | 79 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\ttydrv_main.c | C | 6 | 0 | 3 | 9 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\uniq_main.c | C | 168 | 0 | 47 | 215 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\userstat_main.c | C | 48 | 0 | 9 | 57 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\wait_main.c | C | 68 | 0 | 15 | 83 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\wavplay_main.c | C | 447 | 0 | 110 | 557 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\wc_main.c | C | 165 | 0 | 44 | 209 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\write_main.c | C | 74 | 0 | 16 | 90 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\apps\yield_main.c | C | 39 | 0 | 9 | 48 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\include\cleonos_rust_bridge.h | C++ | 6 | 0 | 4 | 10 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\include\cleonos_stdio.h | C++ | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\include\cleonos_syscall.h | C++ | 223 | 0 | 12 | 235 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\include\ctype.h | C++ | 14 | 0 | 3 | 17 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\include\dlfcn.h | C++ | 6 | 0 | 3 | 9 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\include\stdio.h | C++ | 21 | 0 | 7 | 28 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\include\stdlib.h | C++ | 27 | 0 | 10 | 37 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\include\string.h | C++ | 25 | 0 | 5 | 30 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\src\dlfcn.c | C | 33 | 0 | 16 | 49 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\src\libc_ctype.c | C | 34 | 0 | 12 | 46 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\src\libc_stdlib.c | C | 198 | 0 | 57 | 255 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\src\libc_string.c | C | 340 | 0 | 106 | 446 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\src\runtime.c | C | 41 | 0 | 13 | 54 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\src\stdio.c | C | 570 | 0 | 143 | 713 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\src\syscall.c | C | 278 | 0 | 92 | 370 |
|
||||
| d:\Projects\C\cleonos\cleonos\c\stub.c | C | 3 | 4 | 2 | 9 |
|
||||
| d:\Projects\C\cleonos\cleonos\rust\src\lib.rs | Rust | 23 | 0 | 9 | 32 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\README.md | Markdown | 51 | 0 | 17 | 68 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\Makefile | Makefile | 34 | 7 | 14 | 55 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\am_map.c | C | 970 | 162 | 224 | 1,356 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\am_map.h | C++ | 13 | 24 | 13 | 50 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\config.h | C++ | 33 | 34 | 34 | 101 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_englsh.h | C++ | 522 | 65 | 107 | 694 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_event.c | C | 22 | 27 | 15 | 64 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_event.h | C++ | 43 | 66 | 29 | 138 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_items.c | C | 77 | 38 | 14 | 129 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_items.h | C++ | 14 | 18 | 10 | 42 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_iwad.c | C | 509 | 133 | 207 | 849 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_iwad.h | C++ | 28 | 16 | 9 | 53 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_loop.c | C | 464 | 169 | 194 | 827 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_loop.h | C++ | 23 | 34 | 25 | 82 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_main.c | C | 1,089 | 418 | 339 | 1,846 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_main.h | C++ | 11 | 24 | 16 | 51 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_mode.c | C | 150 | 28 | 32 | 210 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_mode.h | C++ | 58 | 24 | 17 | 99 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_net.c | C | 158 | 61 | 63 | 282 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_player.h | C++ | 82 | 77 | 51 | 210 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_textur.h | C++ | 10 | 22 | 12 | 44 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_think.h | C++ | 19 | 29 | 21 | 69 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\d_ticcmd.h | C++ | 17 | 26 | 14 | 57 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\deh_main.h | C++ | 19 | 19 | 11 | 49 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\deh_misc.h | C++ | 55 | 17 | 12 | 84 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\deh_str.h | C++ | 18 | 17 | 13 | 48 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doom.h | C++ | 4 | 27 | 12 | 43 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomdata.h | C++ | 93 | 70 | 51 | 214 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomdef.c | C | 1 | 20 | 8 | 29 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomdef.h | C++ | 86 | 48 | 35 | 169 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomfeatures.h | C++ | 6 | 22 | 13 | 41 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric.c | C | 15 | 1 | 12 | 28 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric.h | C++ | 31 | 1 | 18 | 50 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric.vcxproj | XML | 339 | 0 | 0 | 339 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_allegro.c | C | 319 | 16 | 119 | 454 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_emscripten.c | C | 184 | 5 | 31 | 220 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_linuxvt.c | C | 412 | 39 | 78 | 529 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_sdl.c | C | 173 | 9 | 29 | 211 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_soso.c | C | 217 | 6 | 54 | 277 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_sosox.c | C | 197 | 3 | 48 | 248 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_win.c | C | 171 | 2 | 37 | 210 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomgeneric_xlib.c | C | 161 | 7 | 46 | 214 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomkeys.h | C++ | 61 | 23 | 14 | 98 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomstat.c | C | 7 | 19 | 10 | 36 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomstat.h | C++ | 77 | 108 | 97 | 282 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\doomtype.h | C++ | 40 | 35 | 30 | 105 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\dstrings.c | C | 37 | 22 | 15 | 74 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\dstrings.h | C++ | 8 | 22 | 12 | 42 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\dummy.c | C | 8 | 30 | 16 | 54 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\f_finale.c | C | 528 | 77 | 114 | 719 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\f_finale.h | C++ | 9 | 23 | 14 | 46 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\f_wipe.c | C | 220 | 31 | 44 | 295 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\f_wipe.h | C++ | 29 | 22 | 13 | 64 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\g_game.c | C | 1,572 | 319 | 413 | 2,304 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\g_game.h | C++ | 29 | 28 | 24 | 81 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\gusconf.c | C | 190 | 24 | 58 | 272 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\gusconf.h | C++ | 7 | 16 | 7 | 30 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\hu_lib.c | C | 252 | 32 | 64 | 348 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\hu_lib.h | C++ | 77 | 59 | 47 | 183 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\hu_stuff.c | C | 493 | 51 | 98 | 642 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\hu_stuff.h | C++ | 21 | 23 | 16 | 60 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_allegromusic.c | C | 192 | 38 | 79 | 309 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_allegrosound.c | C | 255 | 73 | 106 | 434 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_cdmus.c | C | 159 | 31 | 54 | 244 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_cdmus.h | C++ | 20 | 15 | 7 | 42 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_endoom.c | C | 48 | 26 | 28 | 102 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_endoom.h | C++ | 4 | 19 | 7 | 30 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_input.c | C | 261 | 45 | 36 | 342 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_joystick.c | C | 254 | 38 | 68 | 360 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_joystick.h | C++ | 21 | 33 | 17 | 71 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_scale.c | C | 889 | 225 | 339 | 1,453 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_scale.h | C++ | 21 | 20 | 13 | 54 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_sdlmusic.c | C | 887 | 177 | 253 | 1,317 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_sdlsound.c | C | 616 | 195 | 266 | 1,077 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_sound.c | C | 284 | 62 | 75 | 421 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_sound.h | C++ | 104 | 71 | 82 | 257 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_swap.h | C++ | 34 | 18 | 22 | 74 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_system.c | C | 347 | 112 | 120 | 579 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_system.h | C++ | 19 | 37 | 29 | 85 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_timer.c | C | 36 | 32 | 29 | 97 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_timer.h | C++ | 9 | 23 | 11 | 43 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_video.c | C | 309 | 74 | 113 | 496 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\i_video.h | C++ | 63 | 65 | 48 | 176 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\icon.c | C | 260 | 0 | 3 | 263 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\info.c | C | 4,492 | 21 | 150 | 4,663 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\info.h | C++ | 1,296 | 21 | 15 | 1,332 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_argv.c | C | 150 | 52 | 64 | 266 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_argv.h | C++ | 11 | 26 | 13 | 50 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_bbox.c | C | 21 | 20 | 14 | 55 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_bbox.h | C++ | 18 | 19 | 11 | 48 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_cheat.c | C | 38 | 32 | 20 | 90 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_cheat.h | C++ | 24 | 23 | 16 | 63 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_config.c | C | 615 | 948 | 566 | 2,129 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_config.h | C++ | 16 | 17 | 7 | 40 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_controls.c | C | 269 | 57 | 73 | 399 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_controls.h | C++ | 121 | 17 | 31 | 169 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_fixed.c | C | 24 | 21 | 18 | 63 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_fixed.h | C++ | 8 | 20 | 12 | 40 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_menu.c | C | 1,502 | 250 | 374 | 2,126 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_menu.h | C++ | 11 | 33 | 18 | 62 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_misc.c | C | 335 | 87 | 115 | 537 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_misc.h | C++ | 27 | 17 | 8 | 52 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_random.c | C | 37 | 22 | 7 | 66 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\m_random.h | C++ | 7 | 21 | 12 | 40 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\memio.c | C | 122 | 27 | 49 | 198 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\memio.h | C++ | 18 | 14 | 7 | 39 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\mus2mid.c | C | 504 | 76 | 158 | 738 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\mus2mid.h | C++ | 6 | 0 | 3 | 9 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_client.h | C++ | 29 | 15 | 9 | 53 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_dedicated.h | C++ | 4 | 16 | 6 | 26 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_defs.h | C++ | 148 | 46 | 55 | 249 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_gui.h | C++ | 5 | 18 | 7 | 30 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_io.h | C++ | 14 | 16 | 7 | 37 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_loop.h | C++ | 6 | 16 | 6 | 28 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_packet.h | C++ | 18 | 16 | 11 | 45 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_query.h | C++ | 19 | 16 | 10 | 45 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_sdl.h | C++ | 5 | 16 | 6 | 27 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\net_server.h | C++ | 8 | 21 | 14 | 43 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_ceilng.c | C | 226 | 47 | 52 | 325 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_doors.c | C | 571 | 83 | 125 | 779 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_enemy.c | C | 1,341 | 238 | 428 | 2,007 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_floor.c | C | 429 | 54 | 64 | 547 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_inter.c | C | 643 | 115 | 165 | 923 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_inter.h | C++ | 4 | 17 | 10 | 31 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_lights.c | C | 201 | 72 | 78 | 351 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_local.h | C++ | 155 | 66 | 77 | 298 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_map.c | C | 828 | 304 | 317 | 1,449 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_maputl.c | C | 651 | 161 | 190 | 1,002 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_mobj.c | C | 654 | 184 | 212 | 1,050 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_mobj.h | C++ | 77 | 161 | 47 | 285 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_plats.c | C | 218 | 29 | 58 | 305 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_pspr.c | C | 537 | 173 | 179 | 889 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_pspr.h | C++ | 21 | 35 | 16 | 72 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_saveg.c | C | 975 | 435 | 482 | 1,892 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_saveg.h | C++ | 21 | 24 | 18 | 63 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_setup.c | C | 547 | 134 | 175 | 856 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_setup.h | C++ | 10 | 19 | 9 | 38 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_sight.c | C | 204 | 75 | 72 | 351 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_spec.c | C | 908 | 307 | 275 | 1,490 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_spec.h | C++ | 380 | 75 | 183 | 638 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_switch.c | C | 425 | 111 | 113 | 649 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_telept.c | C | 69 | 35 | 30 | 134 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_tick.c | C | 63 | 53 | 36 | 152 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_tick.h | C++ | 4 | 20 | 10 | 34 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\p_user.c | C | 219 | 73 | 88 | 380 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_bsp.c | C | 329 | 122 | 123 | 574 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_bsp.h | C++ | 23 | 19 | 20 | 62 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_data.c | C | 543 | 167 | 203 | 913 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_data.h | C++ | 14 | 25 | 13 | 52 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_defs.h | C++ | 164 | 155 | 130 | 449 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_draw.c | C | 554 | 216 | 206 | 976 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_draw.h | C++ | 40 | 33 | 32 | 105 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_local.h | C++ | 13 | 24 | 9 | 46 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_main.c | C | 556 | 155 | 181 | 892 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_main.h | C++ | 72 | 45 | 44 | 161 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_plane.c | C | 278 | 84 | 85 | 447 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_plane.h | C++ | 37 | 18 | 22 | 77 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_segs.c | C | 507 | 103 | 134 | 744 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_segs.h | C++ | 8 | 17 | 9 | 34 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_sky.c | C | 10 | 31 | 12 | 53 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_sky.h | C++ | 8 | 20 | 10 | 38 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_state.h | C++ | 49 | 36 | 43 | 128 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_things.c | C | 605 | 171 | 207 | 983 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\r_things.h | C++ | 28 | 20 | 18 | 66 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\s_sound.c | C | 431 | 108 | 132 | 671 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\s_sound.h | C++ | 20 | 42 | 28 | 90 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\sha1.c | C | 239 | 49 | 32 | 320 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\sha1.h | C++ | 17 | 16 | 8 | 41 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\sounds.c | C | 192 | 25 | 13 | 230 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\sounds.h | C++ | 191 | 26 | 11 | 228 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\st_lib.c | C | 186 | 35 | 64 | 285 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\st_lib.h | C++ | 91 | 60 | 59 | 210 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\st_stuff.c | C | 903 | 216 | 298 | 1,417 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\st_stuff.h | C++ | 36 | 31 | 23 | 90 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\statdump.c | C | 239 | 58 | 96 | 393 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\statdump.h | C++ | 5 | 15 | 4 | 24 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\tables.c | C | 2,173 | 37 | 18 | 2,228 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\tables.h | C++ | 26 | 44 | 27 | 97 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\v_patch.h | C++ | 17 | 25 | 9 | 51 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\v_video.c | C | 617 | 139 | 177 | 933 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\v_video.h | C++ | 34 | 40 | 35 | 109 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_checksum.c | C | 48 | 21 | 19 | 88 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_checksum.h | C++ | 5 | 17 | 6 | 28 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_file.c | C | 44 | 32 | 20 | 96 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_file.h | C++ | 23 | 31 | 25 | 79 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_file_stdc.c | C | 49 | 22 | 26 | 97 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_main.c | C | 87 | 66 | 46 | 199 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_main.h | C++ | 4 | 16 | 5 | 25 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_merge.h | C++ | 9 | 23 | 13 | 45 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_wad.c | C | 353 | 124 | 136 | 613 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\w_wad.h | C++ | 31 | 24 | 24 | 79 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\wi_stuff.c | C | 1,215 | 210 | 405 | 1,830 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\wi_stuff.h | C++ | 14 | 24 | 11 | 49 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\z_zone.c | C | 278 | 89 | 122 | 489 |
|
||||
| d:\Projects\C\cleonos\cleonos\third-party\doomgeneric\doomgeneric\z_zone.h | C++ | 29 | 29 | 16 | 74 |
|
||||
| d:\Projects\C\cleonos\clks\arch\aarch64\startup\boot.c | C | 6 | 0 | 1 | 7 |
|
||||
| d:\Projects\C\cleonos\clks\arch\x86_64\interrupt\interrupt_stubs.S | Go Assembly | 108 | 0 | 12 | 120 |
|
||||
| d:\Projects\C\cleonos\clks\arch\x86_64\startup\boot.c | C | 6 | 0 | 1 | 7 |
|
||||
| d:\Projects\C\cleonos\clks\arch\x86_64\startup\exec_stack_call.S | Go Assembly | 40 | 0 | 8 | 48 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\audio.h | C++ | 9 | 0 | 3 | 12 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\boot.h | C++ | 11 | 0 | 4 | 15 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\compiler.h | C++ | 13 | 0 | 4 | 17 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\cpu.h | C++ | 20 | 0 | 4 | 24 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\desktop.h | C++ | 7 | 0 | 4 | 11 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\driver.h | C++ | 29 | 0 | 8 | 37 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\elf64.h | C++ | 32 | 0 | 9 | 41 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\elfrunner.h | C++ | 6 | 0 | 3 | 9 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\exec.h | C++ | 73 | 0 | 8 | 81 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\framebuffer.h | C++ | 26 | 0 | 6 | 32 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\fs.h | C++ | 23 | 0 | 7 | 30 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\heap.h | C++ | 15 | 0 | 4 | 19 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\interrupts.h | C++ | 6 | 0 | 3 | 9 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\kelf.h | C++ | 9 | 0 | 5 | 14 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\kernel.h | C++ | 4 | 0 | 2 | 6 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\keyboard.h | C++ | 27 | 0 | 5 | 32 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\limine.h | C++ | 112 | 0 | 24 | 136 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\log.h | C++ | 14 | 0 | 5 | 19 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\mouse.h | C++ | 20 | 0 | 6 | 26 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\panic.h | C++ | 7 | 0 | 4 | 11 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\pmm.h | C++ | 16 | 0 | 5 | 21 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\ramdisk.h | C++ | 17 | 0 | 8 | 25 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\scheduler.h | C++ | 18 | 0 | 5 | 23 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\serial.h | C++ | 6 | 0 | 2 | 8 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\service.h | C++ | 31 | 0 | 8 | 39 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\shell.h | C++ | 7 | 0 | 3 | 10 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\string.h | C++ | 9 | 0 | 3 | 12 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\syscall.h | C++ | 91 | 0 | 5 | 96 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\task.h | C++ | 19 | 0 | 7 | 26 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\tty.h | C++ | 15 | 0 | 4 | 19 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\types.h | C++ | 14 | 0 | 6 | 20 |
|
||||
| d:\Projects\C\cleonos\clks\include\clks\userland.h | C++ | 12 | 0 | 4 | 16 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\boot\limine\limine_requests.c | C | 76 | 0 | 26 | 102 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\core\interrupts.c | C | 307 | 0 | 43 | 350 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\core\kmain.c | C | 388 | 1 | 77 | 466 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\core\log.c | C | 179 | 0 | 48 | 227 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\core\panic.c | C | 527 | 0 | 155 | 682 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\core\scheduler.c | C | 136 | 0 | 44 | 180 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\core\service.c | C | 107 | 0 | 34 | 141 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\hal\audio\pcspeaker.c | C | 101 | 0 | 25 | 126 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\hal\serial\serial.c | C | 51 | 0 | 16 | 67 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\hal\video\font8x8.c | C | 45 | 0 | 8 | 53 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\hal\video\font8x8.h | C++ | 5 | 0 | 3 | 8 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\hal\video\framebuffer.c | C | 247 | 0 | 69 | 316 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\hal\video\psf_font.c | C | 203 | 0 | 56 | 259 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\hal\video\psf_font.h | C++ | 15 | 0 | 5 | 20 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\input\keyboard.c | C | 370 | 0 | 95 | 465 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\input\mouse.c | C | 243 | 0 | 63 | 306 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\interface\desktop.c | C | 321 | 0 | 86 | 407 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\interface\shell.c | C | 1,232 | 0 | 316 | 1,548 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\interface\tty.c | C | 1,137 | 0 | 288 | 1,425 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\memory\heap.c | C | 137 | 0 | 44 | 181 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\memory\pmm.c | C | 82 | 0 | 23 | 105 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\runtime\driver.c | C | 166 | 0 | 49 | 215 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\runtime\elf64.c | C | 279 | 1 | 84 | 364 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\runtime\elfrunner.c | C | 30 | 0 | 8 | 38 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\runtime\exec.c | C | 2,179 | 1 | 595 | 2,775 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\runtime\kelf.c | C | 198 | 1 | 52 | 251 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\runtime\syscall.c | C | 2,021 | 0 | 507 | 2,528 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\runtime\userland.c | C | 146 | 0 | 38 | 184 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\storage\fs.c | C | 684 | 0 | 222 | 906 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\storage\ramdisk.c | C | 172 | 0 | 50 | 222 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\support\libc_compat.c | C | 25 | 0 | 7 | 32 |
|
||||
| d:\Projects\C\cleonos\clks\kernel\support\string.c | C | 54 | 0 | 16 | 70 |
|
||||
| d:\Projects\C\cleonos\clks\rust\src\lib.rs | Rust | 21 | 0 | 6 | 27 |
|
||||
| d:\Projects\C\cleonos\cmake\check_tools.cmake | CMake | 34 | 0 | 7 | 41 |
|
||||
| d:\Projects\C\cleonos\cmake\gen_kernel_symbols.cmake | CMake | 80 | 0 | 26 | 106 |
|
||||
| d:\Projects\C\cleonos\cmake\log.cmake | CMake | 30 | 0 | 6 | 36 |
|
||||
| d:\Projects\C\cleonos\cmake\log_emit.cmake | CMake | 23 | 0 | 6 | 29 |
|
||||
| d:\Projects\C\cleonos\cmake\setup_limine.cmake | CMake | 100 | 0 | 19 | 119 |
|
||||
| d:\Projects\C\cleonos\configs\limine.conf | Properties | 6 | 0 | 1 | 7 |
|
||||
| d:\Projects\C\cleonos\configs\menuconfig\clks_features.json | JSON | 376 | 0 | 1 | 377 |
|
||||
| d:\Projects\C\cleonos\docs\README.md | Markdown | 31 | 0 | 4 | 35 |
|
||||
| d:\Projects\C\cleonos\docs\stage1.md | Markdown | 41 | 0 | 5 | 46 |
|
||||
| d:\Projects\C\cleonos\docs\stage10.md | Markdown | 34 | 0 | 6 | 40 |
|
||||
| d:\Projects\C\cleonos\docs\stage11.md | Markdown | 36 | 0 | 5 | 41 |
|
||||
| d:\Projects\C\cleonos\docs\stage12.md | Markdown | 40 | 0 | 6 | 46 |
|
||||
| d:\Projects\C\cleonos\docs\stage13.md | Markdown | 34 | 0 | 6 | 40 |
|
||||
| d:\Projects\C\cleonos\docs\stage14.md | Markdown | 44 | 0 | 8 | 52 |
|
||||
| d:\Projects\C\cleonos\docs\stage15.md | Markdown | 47 | 0 | 7 | 54 |
|
||||
| d:\Projects\C\cleonos\docs\stage2.md | Markdown | 30 | 0 | 5 | 35 |
|
||||
| d:\Projects\C\cleonos\docs\stage20.md | Markdown | 46 | 0 | 6 | 52 |
|
||||
| d:\Projects\C\cleonos\docs\stage21.md | Markdown | 72 | 0 | 7 | 79 |
|
||||
| d:\Projects\C\cleonos\docs\stage22.md | Markdown | 68 | 0 | 7 | 75 |
|
||||
| d:\Projects\C\cleonos\docs\stage23.md | Markdown | 41 | 0 | 6 | 47 |
|
||||
| d:\Projects\C\cleonos\docs\stage24.md | Markdown | 42 | 0 | 7 | 49 |
|
||||
| d:\Projects\C\cleonos\docs\stage25.md | Markdown | 58 | 0 | 7 | 65 |
|
||||
| d:\Projects\C\cleonos\docs\stage26.md | Markdown | 32 | 0 | 7 | 39 |
|
||||
| d:\Projects\C\cleonos\docs\stage27.md | Markdown | 32 | 0 | 7 | 39 |
|
||||
| d:\Projects\C\cleonos\docs\stage28.md | Markdown | 37 | 0 | 7 | 44 |
|
||||
| d:\Projects\C\cleonos\docs\stage29.md | Markdown | 33 | 0 | 7 | 40 |
|
||||
| d:\Projects\C\cleonos\docs\stage3.md | Markdown | 29 | 0 | 5 | 34 |
|
||||
| d:\Projects\C\cleonos\docs\stage4.md | Markdown | 30 | 0 | 5 | 35 |
|
||||
| d:\Projects\C\cleonos\docs\stage5.md | Markdown | 29 | 0 | 5 | 34 |
|
||||
| d:\Projects\C\cleonos\docs\stage6.md | Markdown | 30 | 0 | 6 | 36 |
|
||||
| d:\Projects\C\cleonos\docs\stage7.md | Markdown | 34 | 0 | 6 | 40 |
|
||||
| d:\Projects\C\cleonos\docs\stage8.md | Markdown | 31 | 0 | 6 | 37 |
|
||||
| d:\Projects\C\cleonos\docs\stage9.md | Markdown | 31 | 0 | 6 | 37 |
|
||||
| d:\Projects\C\cleonos\docs\syscall.md | Markdown | 499 | 0 | 206 | 705 |
|
||||
| d:\Projects\C\cleonos\limine\.github\dependabot.yml | YAML | 7 | 0 | 1 | 8 |
|
||||
| d:\Projects\C\cleonos\limine\.github\workflows\binary-release.yml | YAML | 78 | 0 | 21 | 99 |
|
||||
| d:\Projects\C\cleonos\limine\.github\workflows\check.yml | YAML | 34 | 0 | 12 | 46 |
|
||||
| d:\Projects\C\cleonos\limine\.github\workflows\pr_branch_check.yml | YAML | 13 | 0 | 3 | 16 |
|
||||
| d:\Projects\C\cleonos\limine\.github\workflows\qa.yml | YAML | 14 | 0 | 5 | 19 |
|
||||
| d:\Projects\C\cleonos\limine\.github\workflows\release.yml | YAML | 64 | 0 | 17 | 81 |
|
||||
| d:\Projects\C\cleonos\limine\3RDPARTY.md | Markdown | 53 | 0 | 15 | 68 |
|
||||
| d:\Projects\C\cleonos\limine\CONFIG.md | Markdown | 320 | 0 | 53 | 373 |
|
||||
| d:\Projects\C\cleonos\limine\FAQ.md | Markdown | 26 | 0 | 10 | 36 |
|
||||
| d:\Projects\C\cleonos\limine\INSTALL.md | Markdown | 37 | 0 | 15 | 52 |
|
||||
| d:\Projects\C\cleonos\limine\README.md | Markdown | 70 | 0 | 33 | 103 |
|
||||
| d:\Projects\C\cleonos\limine\USAGE.md | Markdown | 85 | 0 | 23 | 108 |
|
||||
| d:\Projects\C\cleonos\limine\common\common.mk | Makefile | 562 | 0 | 115 | 677 |
|
||||
| d:\Projects\C\cleonos\limine\common\crypt\blake2b.c | C | 179 | 3 | 39 | 221 |
|
||||
| d:\Projects\C\cleonos\limine\common\crypt\blake2b.h | C++ | 6 | 0 | 5 | 11 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\disk.h | C++ | 18 | 0 | 9 | 27 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\disk.s2.c | C | 646 | 33 | 178 | 857 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\edid.c | C | 61 | 0 | 25 | 86 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\edid.h | C++ | 37 | 0 | 7 | 44 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\gop.c | C | 306 | 3 | 73 | 382 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\gop.h | C++ | 13 | 0 | 7 | 20 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\serial.c | C | 37 | 1 | 13 | 51 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\serial.h | C++ | 9 | 0 | 7 | 16 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\vbe.c | C | 307 | 8 | 53 | 368 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\vbe.h | C++ | 11 | 0 | 5 | 16 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\vga_textmode.c | C | 294 | 5 | 71 | 370 |
|
||||
| d:\Projects\C\cleonos\limine\common\drivers\vga_textmode.h | C++ | 24 | 0 | 12 | 36 |
|
||||
| d:\Projects\C\cleonos\limine\common\entry.s2.c | C | 106 | 1 | 28 | 135 |
|
||||
| d:\Projects\C\cleonos\limine\common\entry.s3.c | C | 202 | 0 | 47 | 249 |
|
||||
| d:\Projects\C\cleonos\limine\common\fs\fat32.h | C++ | 7 | 0 | 5 | 12 |
|
||||
| d:\Projects\C\cleonos\limine\common\fs\fat32.s2.c | C | 577 | 39 | 111 | 727 |
|
||||
| d:\Projects\C\cleonos\limine\common\fs\file.h | C++ | 39 | 0 | 7 | 46 |
|
||||
| d:\Projects\C\cleonos\limine\common\fs\file.s2.c | C | 163 | 0 | 22 | 185 |
|
||||
| d:\Projects\C\cleonos\limine\common\fs\iso9660.h | C++ | 7 | 0 | 4 | 11 |
|
||||
| d:\Projects\C\cleonos\limine\common\fs\iso9660.s2.c | C | 407 | 38 | 94 | 539 |
|
||||
| d:\Projects\C\cleonos\limine\common\gensyms.sh | Shell Script | 33 | 2 | 17 | 52 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\acpi.c | C | 344 | 27 | 102 | 473 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\acpi.h | C++ | 163 | 24 | 30 | 217 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\bli.c | C | 67 | 4 | 20 | 91 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\bli.h | C++ | 7 | 0 | 5 | 12 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\config.c | C | 628 | 11 | 126 | 765 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\config.h | C++ | 28 | 0 | 9 | 37 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\elf.c | C | 964 | 27 | 212 | 1,203 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\elf.h | C++ | 74 | 0 | 14 | 88 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\elsewhere.c | C | 81 | 7 | 17 | 105 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\elsewhere.h | C++ | 16 | 0 | 5 | 21 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\fb.c | C | 153 | 4 | 17 | 174 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\fb.h | C++ | 36 | 0 | 12 | 48 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\fdt.c | C | 33 | 0 | 12 | 45 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\fdt.h | C++ | 10 | 0 | 6 | 16 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\getchar.c | C | 306 | 1 | 59 | 366 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\getchar.h | C++ | 23 | 0 | 6 | 29 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\gterm.c | C | 813 | 9 | 118 | 940 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\gterm.h | C++ | 29 | 0 | 6 | 35 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\guid.c | C | 82 | 0 | 14 | 96 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\guid.h | C++ | 15 | 1 | 5 | 21 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\image.c | C | 52 | 2 | 18 | 72 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\image.h | C++ | 27 | 0 | 6 | 33 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\libc.c | C | 114 | 3 | 15 | 132 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\libc.h | C++ | 29 | 0 | 8 | 37 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\libc.s2.c | C | 122 | 2 | 26 | 150 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\macros.aarch64_asm.h | C++ | 44 | 4 | 5 | 53 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\memory.s2.c | C | 41 | 0 | 13 | 54 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\misc.c | C | 322 | 8 | 90 | 420 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\misc.h | C++ | 122 | 0 | 32 | 154 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\misc.s2.c | C | 117 | 0 | 12 | 129 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\panic.s2.c | C | 70 | 8 | 12 | 90 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\part.h | C++ | 86 | 2 | 23 | 111 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\part.s2.c | C | 464 | 31 | 121 | 616 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\pe.c | C | 398 | 5 | 98 | 501 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\pe.h | C++ | 8 | 0 | 5 | 13 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\print.h | C++ | 11 | 0 | 6 | 17 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\print.s2.c | C | 200 | 0 | 36 | 236 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\rand.c | C | 112 | 5 | 25 | 142 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\rand.h | C++ | 7 | 0 | 5 | 12 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\real.h | C++ | 26 | 0 | 9 | 35 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\stb_image.c | C | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\term.c | C | 266 | 5 | 49 | 320 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\term.h | C++ | 47 | 0 | 13 | 60 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\time.c | C | 59 | 2 | 15 | 76 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\time.h | C++ | 5 | 0 | 4 | 9 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\trace.h | C++ | 5 | 0 | 4 | 9 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\trace.s2.c | C | 79 | 0 | 9 | 88 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\uri.c | C | 224 | 9 | 54 | 287 |
|
||||
| d:\Projects\C\cleonos\limine\common\lib\uri.h | C++ | 7 | 0 | 4 | 11 |
|
||||
| d:\Projects\C\cleonos\limine\common\libc-compat\stdlib.h | C++ | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\limine\common\libc-compat\string.h | C++ | 19 | 0 | 5 | 24 |
|
||||
| d:\Projects\C\cleonos\limine\common\menu.c | C | 1,378 | 30 | 150 | 1,558 |
|
||||
| d:\Projects\C\cleonos\limine\common\menu.h | C++ | 13 | 0 | 8 | 21 |
|
||||
| d:\Projects\C\cleonos\limine\common\mm\mtrr.c | C | 91 | 18 | 32 | 141 |
|
||||
| d:\Projects\C\cleonos\limine\common\mm\mtrr.h | C++ | 7 | 0 | 5 | 12 |
|
||||
| d:\Projects\C\cleonos\limine\common\mm\pmm.c | C | 70 | 3 | 16 | 89 |
|
||||
| d:\Projects\C\cleonos\limine\common\mm\pmm.h | C++ | 63 | 0 | 18 | 81 |
|
||||
| d:\Projects\C\cleonos\limine\common\mm\pmm.s2.c | C | 662 | 37 | 192 | 891 |
|
||||
| d:\Projects\C\cleonos\limine\common\mm\vmm.c | C | 416 | 30 | 110 | 556 |
|
||||
| d:\Projects\C\cleonos\limine\common\mm\vmm.h | C++ | 125 | 6 | 45 | 176 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\chainload.c | C | 283 | 7 | 78 | 368 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\chainload.h | C++ | 5 | 0 | 4 | 9 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\efi_boot_entry.c | C | 94 | 6 | 26 | 126 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\efi_boot_entry.h | C++ | 5 | 0 | 4 | 9 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\limine.c | C | 1,523 | 80 | 331 | 1,934 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\limine.h | C++ | 5 | 0 | 4 | 9 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\linux.h | C++ | 59 | 1 | 14 | 74 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\linux_risc.c | C | 412 | 22 | 99 | 533 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\linux_x86.c | C | 527 | 41 | 96 | 664 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\multiboot.h | C++ | 13 | 0 | 5 | 18 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\multiboot1.c | C | 394 | 14 | 105 | 513 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\multiboot1.h | C++ | 76 | 0 | 25 | 101 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\multiboot2.c | C | 782 | 77 | 182 | 1,041 |
|
||||
| d:\Projects\C\cleonos\limine\common\protos\multiboot2.h | C++ | 331 | 30 | 58 | 419 |
|
||||
| d:\Projects\C\cleonos\limine\common\pxe\pxe.h | C++ | 96 | 0 | 16 | 112 |
|
||||
| d:\Projects\C\cleonos\limine\common\pxe\pxe.s2.c | C | 53 | 2 | 18 | 73 |
|
||||
| d:\Projects\C\cleonos\limine\common\pxe\tftp.h | C++ | 36 | 0 | 11 | 47 |
|
||||
| d:\Projects\C\cleonos\limine\common\pxe\tftp.s2.c | C | 211 | 5 | 52 | 268 |
|
||||
| d:\Projects\C\cleonos\limine\common\stb_image.patch | Diff | 74 | 7 | 10 | 91 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\a20.h | C++ | 6 | 0 | 4 | 10 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\a20.s2.c | C | 67 | 5 | 21 | 93 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\cpu.h | C++ | 429 | 2 | 82 | 513 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\cpu.s2.c | C | 58 | 6 | 14 | 78 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\cpu_riscv.c | C | 353 | 10 | 65 | 428 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\e820.h | C++ | 9 | 0 | 5 | 14 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\e820.s2.c | C | 33 | 0 | 12 | 45 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\exceptions.s2.c | C | 46 | 0 | 5 | 51 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\gdt.h | C++ | 23 | 0 | 7 | 30 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\gdt.s2.c | C | 83 | 0 | 13 | 96 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\idt.c | C | 53 | 3 | 16 | 72 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\idt.h | C++ | 43 | 0 | 17 | 60 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\idt.s2.c | C | 26 | 0 | 10 | 36 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\iommu.c | C | 94 | 21 | 30 | 145 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\iommu.h | C++ | 4 | 0 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\lapic.c | C | 420 | 23 | 69 | 512 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\lapic.h | C++ | 30 | 0 | 9 | 39 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\pic.c | C | 37 | 1 | 11 | 49 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\pic.h | C++ | 8 | 0 | 4 | 12 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\sbi.h | C++ | 25 | 0 | 8 | 33 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\smp.c | C | 917 | 54 | 259 | 1,230 |
|
||||
| d:\Projects\C\cleonos\limine\common\sys\smp.h | C++ | 38 | 0 | 13 | 51 |
|
||||
| d:\Projects\C\cleonos\limine\decompressor\decompressor.mk | Makefile | 70 | 0 | 15 | 85 |
|
||||
| d:\Projects\C\cleonos\limine\decompressor\main.c | C | 31 | 2 | 5 | 38 |
|
||||
| d:\Projects\C\cleonos\limine\decompressor\memory.c | C | 41 | 0 | 13 | 54 |
|
||||
| d:\Projects\C\cleonos\limine\decompressor\tinf.patch | Diff | 42 | 3 | 10 | 55 |
|
||||
| d:\Projects\C\cleonos\limine\host\hgen.sh | Shell Script | 10 | 1 | 6 | 17 |
|
||||
| d:\Projects\C\cleonos\limine\host\host.mk | Makefile | 14 | 0 | 6 | 20 |
|
||||
| d:\Projects\C\cleonos\limine\host\limine.c | C | 1,192 | 32 | 225 | 1,449 |
|
||||
| d:\Projects\C\cleonos\limine\test.mk | Makefile | 263 | 0 | 16 | 279 |
|
||||
| d:\Projects\C\cleonos\limine\test\e9print.c | C | 81 | 0 | 18 | 99 |
|
||||
| d:\Projects\C\cleonos\limine\test\e9print.h | C++ | 7 | 0 | 3 | 10 |
|
||||
| d:\Projects\C\cleonos\limine\test\limine.c | C | 624 | 0 | 82 | 706 |
|
||||
| d:\Projects\C\cleonos\limine\test\limine.conf | Properties | 40 | 1 | 19 | 60 |
|
||||
| d:\Projects\C\cleonos\limine\test\memory.c | C | 40 | 0 | 13 | 53 |
|
||||
| d:\Projects\C\cleonos\limine\test\multiboot.c | C | 57 | 12 | 24 | 93 |
|
||||
| d:\Projects\C\cleonos\limine\test\multiboot2.c | C | 141 | 5 | 36 | 182 |
|
||||
| d:\Projects\C\cleonos\limine\test\test.mk | Makefile | 143 | 0 | 21 | 164 |
|
||||
| d:\Projects\C\cleonos\limine\version.sh | Shell Script | 19 | 1 | 10 | 30 |
|
||||
| d:\Projects\C\cleonos\ramdisk\dev\random | C++ | 0 | 0 | 1 | 1 |
|
||||
| d:\Projects\C\cleonos\ramdisk\shell\init.cmd | Batch | 4 | 0 | 2 | 6 |
|
||||
| d:\Projects\C\cleonos\scripts\gen-tty-psf.ps1 | PowerShell | 171 | 2 | 42 | 215 |
|
||||
| d:\Projects\C\cleonos\scripts\menuconfig.py | Python | 1,608 | 24 | 304 | 1,936 |
|
||||
| d:\Projects\C\cleonos\wine\README.md | Markdown | 53 | 0 | 19 | 72 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine.py | Python | 3 | 1 | 3 | 7 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\__init__.py | Python | 4 | 0 | 1 | 5 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\cli.py | Python | 44 | 0 | 10 | 54 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\constants.py | Python | 112 | 4 | 14 | 130 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\input_pump.py | Python | 82 | 0 | 17 | 99 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\platform.py | Python | 55 | 0 | 5 | 60 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\runner.py | Python | 1,459 | 0 | 266 | 1,725 |
|
||||
| d:\Projects\C\cleonos\wine\cleonos_wine_lib\state.py | Python | 282 | 2 | 71 | 355 |
|
||||
| d:\Projects\C\cleonos\wine\requirements.txt | pip requirements | 1 | 0 | 1 | 2 |
|
||||
| Total | | 108,044 | 13,937 | 27,927 | 149,908 |
|
||||
+--------------------------------------------------------------------------------------------+------------------+------------+------------+------------+------------+
|
||||
7
.github/workflows/build-os.yml
vendored
7
.github/workflows/build-os.yml
vendored
@@ -74,6 +74,13 @@ jobs:
|
||||
cmake -S . -B build-cmake \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DNO_COLOR=1 \
|
||||
-DCC=gcc \
|
||||
-DKERNEL_CXX=g++ \
|
||||
-DLD=ld.lld \
|
||||
-DUSER_CC=cc \
|
||||
-DUSER_LD=ld.lld \
|
||||
-DNM=llvm-nm \
|
||||
-DADDR2LINE=llvm-addr2line \
|
||||
-DLIMINE_REPO=https://github.com/limine-bootloader/limine.git
|
||||
|
||||
- name: Build ISO
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,7 +2,6 @@ build/
|
||||
build-cmake*/
|
||||
*.iso
|
||||
*.tar
|
||||
limine/
|
||||
|
||||
# CMake generated files
|
||||
CMakeCache.txt
|
||||
|
||||
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -1,3 +1,6 @@
|
||||
[submodule "limine"]
|
||||
path = limine
|
||||
url = https://github.com/limine-bootloader/limine.git
|
||||
[submodule "cleonos/third-party/doomgeneric"]
|
||||
path = cleonos/third-party/doomgeneric
|
||||
url = https://github.com/CLeonOS/doom.git
|
||||
|
||||
495
CMakeLists.txt
495
CMakeLists.txt
@@ -7,6 +7,7 @@ include("${CMAKE_SOURCE_DIR}/cmake/log.cmake")
|
||||
set(CL_LOG_EMIT_SCRIPT "${CMAKE_SOURCE_DIR}/cmake/log_emit.cmake")
|
||||
|
||||
set(CC "x86_64-elf-gcc" CACHE STRING "Kernel C compiler")
|
||||
set(KERNEL_CXX "g++" CACHE STRING "Kernel C++ compiler")
|
||||
set(LD "x86_64-elf-ld" CACHE STRING "Kernel linker")
|
||||
set(USER_CC "cc" CACHE STRING "User-space C compiler")
|
||||
set(USER_LD "ld" CACHE STRING "User-space linker")
|
||||
@@ -55,16 +56,20 @@ function(resolve_tool_with_fallback VAR_NAME)
|
||||
endif()
|
||||
set(_resolved "${_requested}")
|
||||
else()
|
||||
unset(_requested_path CACHE)
|
||||
unset(_requested_path)
|
||||
find_program(_requested_path NAMES "${_requested}")
|
||||
if(_requested_path)
|
||||
set(_resolved "${_requested}")
|
||||
set(_resolved "${_requested_path}")
|
||||
else()
|
||||
set(_resolved "")
|
||||
foreach(_cand IN LISTS _fallbacks)
|
||||
unset(_cand_path CACHE)
|
||||
unset(_cand_path)
|
||||
find_program(_cand_path NAMES "${_cand}")
|
||||
if(_cand_path)
|
||||
cl_log_warn("${VAR_NAME} '${_requested}' not found; fallback to '${_cand}'")
|
||||
set(_resolved "${_cand}")
|
||||
set(_resolved "${_cand_path}")
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
@@ -99,6 +104,7 @@ set(USER_RUST_LIB "${USER_LIB_DIR}/libcleonos_user_rust.a")
|
||||
set(KERNEL_RUST_LIB "${BUILD_ROOT}/libclks_kernel_rust.a")
|
||||
|
||||
resolve_tool_with_fallback(CC gcc cc clang)
|
||||
resolve_tool_with_fallback(KERNEL_CXX g++ clang++ x86_64-elf-g++)
|
||||
resolve_tool_with_fallback(LD ld.lld ld)
|
||||
resolve_tool_with_fallback(USER_CC cc gcc clang)
|
||||
resolve_tool_with_fallback(USER_LD ld.lld ld)
|
||||
@@ -125,10 +131,27 @@ if(EXISTS "${CLEONOS_MENUCONFIG_CMAKE}")
|
||||
endif()
|
||||
|
||||
function(cl_set_bool_cache VAR_NAME DEFAULT_VALUE DOC_TEXT)
|
||||
if(NOT DEFINED ${VAR_NAME})
|
||||
set(_raw_value "")
|
||||
set(_has_value OFF)
|
||||
|
||||
if(DEFINED ${VAR_NAME})
|
||||
set(_raw_value "${${VAR_NAME}}")
|
||||
set(_has_value ON)
|
||||
elseif(DEFINED ${VAR_NAME}_IS_ENABLED)
|
||||
set(_raw_value "${${VAR_NAME}_IS_ENABLED}")
|
||||
set(_has_value ON)
|
||||
endif()
|
||||
|
||||
if(NOT _has_value)
|
||||
set(${VAR_NAME} ${DEFAULT_VALUE} CACHE BOOL "${DOC_TEXT}")
|
||||
else()
|
||||
set(${VAR_NAME} ${${VAR_NAME}} CACHE BOOL "${DOC_TEXT}" FORCE)
|
||||
string(TOUPPER "${_raw_value}" _raw_upper)
|
||||
if(_raw_upper STREQUAL "Y" OR _raw_upper STREQUAL "M" OR _raw_upper STREQUAL "ON" OR _raw_upper STREQUAL "TRUE" OR _raw_upper STREQUAL "1")
|
||||
set(_bool_value ON)
|
||||
else()
|
||||
set(_bool_value OFF)
|
||||
endif()
|
||||
set(${VAR_NAME} ${_bool_value} CACHE BOOL "${DOC_TEXT}" FORCE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
@@ -164,6 +187,19 @@ cl_set_bool_cache(CLEONOS_CLKS_ENABLE_TTY_READY_LOG ON "Print TTY ready logs")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_IDLE_DEBUG_LOG ON "Print idle loop debug log")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_PROCFS ON "Enable virtual /proc procfs syscall layer")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_EXEC_SERIAL_LOG ON "Enable EXEC info logs on serial output")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC ON "Enable UserSafeController dangerous syscall confirmations")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_FS_MKDIR ON "USC intercept policy: FS_MKDIR")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_FS_WRITE ON "USC intercept policy: FS_WRITE")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_FS_APPEND ON "USC intercept policy: FS_APPEND")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_FS_REMOVE ON "USC intercept policy: FS_REMOVE")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATH ON "USC intercept policy: EXEC_PATH")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATHV ON "USC intercept policy: EXEC_PATHV")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATHV_IO ON "USC intercept policy: EXEC_PATHV_IO")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_SPAWN_PATH ON "USC intercept policy: SPAWN_PATH")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_SPAWN_PATHV ON "USC intercept policy: SPAWN_PATHV")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_PROC_KILL ON "USC intercept policy: PROC_KILL")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_SHUTDOWN ON "USC intercept policy: SHUTDOWN")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_RESTART ON "USC intercept policy: RESTART")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_KBD_TTY_SWITCH_HOTKEY ON "Enable ALT+F1..F4 TTY switch hotkey")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_KBD_CTRL_SHORTCUTS ON "Enable Ctrl+A/C/V keyboard shortcuts")
|
||||
cl_set_bool_cache(CLEONOS_CLKS_ENABLE_KBD_FORCE_STOP_HOTKEY ON "Enable Ctrl+Alt+C force-stop hotkey")
|
||||
@@ -197,6 +233,19 @@ cl_bool_to_int(CLEONOS_CLKS_ENABLE_TTY_READY_LOG CLKS_CFG_TTY_READY_LOG_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_IDLE_DEBUG_LOG CLKS_CFG_IDLE_DEBUG_LOG_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_PROCFS CLKS_CFG_PROCFS_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_EXEC_SERIAL_LOG CLKS_CFG_EXEC_SERIAL_LOG_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC CLKS_CFG_USC_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_FS_MKDIR CLKS_CFG_USC_SC_FS_MKDIR_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_FS_WRITE CLKS_CFG_USC_SC_FS_WRITE_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_FS_APPEND CLKS_CFG_USC_SC_FS_APPEND_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_FS_REMOVE CLKS_CFG_USC_SC_FS_REMOVE_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATH CLKS_CFG_USC_SC_EXEC_PATH_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATHV CLKS_CFG_USC_SC_EXEC_PATHV_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATHV_IO CLKS_CFG_USC_SC_EXEC_PATHV_IO_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_SPAWN_PATH CLKS_CFG_USC_SC_SPAWN_PATH_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_SPAWN_PATHV CLKS_CFG_USC_SC_SPAWN_PATHV_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_PROC_KILL CLKS_CFG_USC_SC_PROC_KILL_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_SHUTDOWN CLKS_CFG_USC_SC_SHUTDOWN_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_RESTART CLKS_CFG_USC_SC_RESTART_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_KBD_TTY_SWITCH_HOTKEY CLKS_CFG_KBD_TTY_SWITCH_HOTKEY_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_KBD_CTRL_SHORTCUTS CLKS_CFG_KBD_CTRL_SHORTCUTS_INT)
|
||||
cl_bool_to_int(CLEONOS_CLKS_ENABLE_KBD_FORCE_STOP_HOTKEY CLKS_CFG_KBD_FORCE_STOP_HOTKEY_INT)
|
||||
@@ -216,6 +265,24 @@ set(CFLAGS_COMMON
|
||||
-Wextra
|
||||
-Werror
|
||||
"-I${CMAKE_SOURCE_DIR}/clks/include"
|
||||
"-I${CMAKE_SOURCE_DIR}/common/include"
|
||||
)
|
||||
|
||||
set(CXXFLAGS_COMMON
|
||||
-std=c++17
|
||||
-ffreestanding
|
||||
-fno-stack-protector
|
||||
-fno-builtin
|
||||
-fno-exceptions
|
||||
-fno-rtti
|
||||
-fno-threadsafe-statics
|
||||
-fno-use-cxa-atexit
|
||||
-g
|
||||
-Wall
|
||||
-Wextra
|
||||
-Werror
|
||||
"-I${CMAKE_SOURCE_DIR}/clks/include"
|
||||
"-I${CMAKE_SOURCE_DIR}/common/include"
|
||||
)
|
||||
|
||||
set(ARCH_CFLAGS
|
||||
@@ -244,6 +311,19 @@ set(ARCH_CFLAGS
|
||||
"-DCLKS_CFG_IDLE_DEBUG_LOG=${CLKS_CFG_IDLE_DEBUG_LOG_INT}"
|
||||
"-DCLKS_CFG_PROCFS=${CLKS_CFG_PROCFS_INT}"
|
||||
"-DCLKS_CFG_EXEC_SERIAL_LOG=${CLKS_CFG_EXEC_SERIAL_LOG_INT}"
|
||||
"-DCLKS_CFG_USC=${CLKS_CFG_USC_INT}"
|
||||
"-DCLKS_CFG_USC_SC_FS_MKDIR=${CLKS_CFG_USC_SC_FS_MKDIR_INT}"
|
||||
"-DCLKS_CFG_USC_SC_FS_WRITE=${CLKS_CFG_USC_SC_FS_WRITE_INT}"
|
||||
"-DCLKS_CFG_USC_SC_FS_APPEND=${CLKS_CFG_USC_SC_FS_APPEND_INT}"
|
||||
"-DCLKS_CFG_USC_SC_FS_REMOVE=${CLKS_CFG_USC_SC_FS_REMOVE_INT}"
|
||||
"-DCLKS_CFG_USC_SC_EXEC_PATH=${CLKS_CFG_USC_SC_EXEC_PATH_INT}"
|
||||
"-DCLKS_CFG_USC_SC_EXEC_PATHV=${CLKS_CFG_USC_SC_EXEC_PATHV_INT}"
|
||||
"-DCLKS_CFG_USC_SC_EXEC_PATHV_IO=${CLKS_CFG_USC_SC_EXEC_PATHV_IO_INT}"
|
||||
"-DCLKS_CFG_USC_SC_SPAWN_PATH=${CLKS_CFG_USC_SC_SPAWN_PATH_INT}"
|
||||
"-DCLKS_CFG_USC_SC_SPAWN_PATHV=${CLKS_CFG_USC_SC_SPAWN_PATHV_INT}"
|
||||
"-DCLKS_CFG_USC_SC_PROC_KILL=${CLKS_CFG_USC_SC_PROC_KILL_INT}"
|
||||
"-DCLKS_CFG_USC_SC_SHUTDOWN=${CLKS_CFG_USC_SC_SHUTDOWN_INT}"
|
||||
"-DCLKS_CFG_USC_SC_RESTART=${CLKS_CFG_USC_SC_RESTART_INT}"
|
||||
"-DCLKS_CFG_KBD_TTY_SWITCH_HOTKEY=${CLKS_CFG_KBD_TTY_SWITCH_HOTKEY_INT}"
|
||||
"-DCLKS_CFG_KBD_CTRL_SHORTCUTS=${CLKS_CFG_KBD_CTRL_SHORTCUTS_INT}"
|
||||
"-DCLKS_CFG_KBD_FORCE_STOP_HOTKEY=${CLKS_CFG_KBD_FORCE_STOP_HOTKEY_INT}"
|
||||
@@ -279,6 +359,26 @@ set(USER_CFLAGS
|
||||
-Wextra
|
||||
-Werror
|
||||
"-I${CMAKE_SOURCE_DIR}/cleonos/c/include"
|
||||
"-I${CMAKE_SOURCE_DIR}/common/include"
|
||||
)
|
||||
|
||||
set(USER_CFLAGS_DOOM
|
||||
-std=c11
|
||||
-ffreestanding
|
||||
-fno-stack-protector
|
||||
-fno-builtin
|
||||
-Wall
|
||||
-Wextra
|
||||
-Wno-error
|
||||
-Wno-unused-parameter
|
||||
-Wno-missing-field-initializers
|
||||
-Wno-sign-compare
|
||||
-D_DEFAULT_SOURCE
|
||||
-D_POSIX_C_SOURCE=200809L
|
||||
"-I${CMAKE_SOURCE_DIR}/common/include"
|
||||
"-I${CMAKE_SOURCE_DIR}/cleonos/third-party/doomgeneric/doomgeneric"
|
||||
"-include"
|
||||
"${CMAKE_SOURCE_DIR}/cleonos/c/apps/doom/doom_shim.h"
|
||||
)
|
||||
|
||||
set(USER_LDFLAGS
|
||||
@@ -301,391 +401,8 @@ if(NOT CLKS_ARCH STREQUAL "x86_64")
|
||||
cl_log_error("CLKS_ARCH=${CLKS_ARCH} is not supported by this CMake build yet; use x86_64")
|
||||
endif()
|
||||
|
||||
set(KERNEL_SOURCE_DIRS
|
||||
"${CMAKE_SOURCE_DIR}/clks/kernel"
|
||||
"${CMAKE_SOURCE_DIR}/clks/lib"
|
||||
"${CMAKE_SOURCE_DIR}/clks/drivers"
|
||||
"${CMAKE_SOURCE_DIR}/clks/arch/${CLKS_ARCH}"
|
||||
)
|
||||
|
||||
set(C_SOURCES)
|
||||
set(ASM_SOURCES)
|
||||
foreach(_src_dir IN LISTS KERNEL_SOURCE_DIRS)
|
||||
if(EXISTS "${_src_dir}")
|
||||
file(GLOB_RECURSE _c_abs CONFIGURE_DEPENDS "${_src_dir}/*.c")
|
||||
file(GLOB_RECURSE _s_abs CONFIGURE_DEPENDS "${_src_dir}/*.S")
|
||||
foreach(_abs IN LISTS _c_abs)
|
||||
file(RELATIVE_PATH _rel "${CMAKE_SOURCE_DIR}" "${_abs}")
|
||||
list(APPEND C_SOURCES "${_rel}")
|
||||
endforeach()
|
||||
foreach(_abs IN LISTS _s_abs)
|
||||
file(RELATIVE_PATH _rel "${CMAKE_SOURCE_DIR}" "${_abs}")
|
||||
list(APPEND ASM_SOURCES "${_rel}")
|
||||
endforeach()
|
||||
endif()
|
||||
endforeach()
|
||||
list(REMOVE_DUPLICATES C_SOURCES)
|
||||
list(REMOVE_DUPLICATES ASM_SOURCES)
|
||||
list(SORT C_SOURCES)
|
||||
list(SORT ASM_SOURCES)
|
||||
|
||||
file(GLOB_RECURSE KERNEL_INC_SOURCES_ABS CONFIGURE_DEPENDS
|
||||
"${CMAKE_SOURCE_DIR}/clks/**/*.inc"
|
||||
)
|
||||
list(SORT KERNEL_INC_SOURCES_ABS)
|
||||
|
||||
file(GLOB_RECURSE USER_INC_SOURCES_ABS CONFIGURE_DEPENDS
|
||||
"${CMAKE_SOURCE_DIR}/cleonos/**/*.inc"
|
||||
)
|
||||
list(SORT USER_INC_SOURCES_ABS)
|
||||
|
||||
if(NOT C_SOURCES)
|
||||
cl_log_error("no kernel C sources found in clks/")
|
||||
endif()
|
||||
if(NOT EXISTS "${LINKER_SCRIPT}")
|
||||
cl_log_error("missing linker script: ${LINKER_SCRIPT}")
|
||||
endif()
|
||||
|
||||
file(GLOB_RECURSE USER_COMMON_SOURCES_ABS CONFIGURE_DEPENDS "${CMAKE_SOURCE_DIR}/cleonos/c/src/*.c")
|
||||
set(USER_COMMON_SOURCES)
|
||||
foreach(_abs IN LISTS USER_COMMON_SOURCES_ABS)
|
||||
file(RELATIVE_PATH _rel "${CMAKE_SOURCE_DIR}" "${_abs}")
|
||||
list(APPEND USER_COMMON_SOURCES "${_rel}")
|
||||
endforeach()
|
||||
list(SORT USER_COMMON_SOURCES)
|
||||
|
||||
file(GLOB USER_APP_MAIN_SOURCES_ABS CONFIGURE_DEPENDS "${CMAKE_SOURCE_DIR}/cleonos/c/apps/*_main.c")
|
||||
file(GLOB USER_APP_KMAIN_SOURCES_ABS CONFIGURE_DEPENDS "${CMAKE_SOURCE_DIR}/cleonos/c/apps/*_kmain.c")
|
||||
|
||||
set(USER_APP_MAIN_SOURCES)
|
||||
set(USER_APP_KMAIN_SOURCES)
|
||||
foreach(_abs IN LISTS USER_APP_MAIN_SOURCES_ABS)
|
||||
file(RELATIVE_PATH _rel "${CMAKE_SOURCE_DIR}" "${_abs}")
|
||||
list(APPEND USER_APP_MAIN_SOURCES "${_rel}")
|
||||
endforeach()
|
||||
foreach(_abs IN LISTS USER_APP_KMAIN_SOURCES_ABS)
|
||||
file(RELATIVE_PATH _rel "${CMAKE_SOURCE_DIR}" "${_abs}")
|
||||
list(APPEND USER_APP_KMAIN_SOURCES "${_rel}")
|
||||
endforeach()
|
||||
list(SORT USER_APP_MAIN_SOURCES)
|
||||
list(SORT USER_APP_KMAIN_SOURCES)
|
||||
|
||||
if(NOT USER_COMMON_SOURCES)
|
||||
cl_log_error("no user common sources found in cleonos/c/src/")
|
||||
endif()
|
||||
if(NOT USER_APP_MAIN_SOURCES)
|
||||
cl_log_error("no user app *_main.c found in cleonos/c/apps/")
|
||||
endif()
|
||||
if(NOT USER_APP_KMAIN_SOURCES)
|
||||
cl_log_error("no kernel app *_kmain.c found in cleonos/c/apps/")
|
||||
endif()
|
||||
|
||||
function(add_kernel_c_object SRC OUTPUT_LIST_VAR)
|
||||
string(REGEX REPLACE "\\.c$" ".o" OBJ_REL "${SRC}")
|
||||
set(OBJ_PATH "${OBJ_ROOT}/${OBJ_REL}")
|
||||
get_filename_component(OBJ_DIR "${OBJ_PATH}" DIRECTORY)
|
||||
set(_deps "${CMAKE_SOURCE_DIR}/${SRC}" ${KERNEL_INC_SOURCES_ABS})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${OBJ_PATH}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${OBJ_DIR}"
|
||||
COMMAND ${CC} ${CFLAGS_COMMON} ${ARCH_CFLAGS} -c "${CMAKE_SOURCE_DIR}/${SRC}" -o "${OBJ_PATH}"
|
||||
DEPENDS ${_deps}
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
set(${OUTPUT_LIST_VAR} ${${OUTPUT_LIST_VAR}} "${OBJ_PATH}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(add_kernel_asm_object SRC OUTPUT_LIST_VAR)
|
||||
string(REGEX REPLACE "\\.S$" ".o" OBJ_REL "${SRC}")
|
||||
set(OBJ_PATH "${OBJ_ROOT}/${OBJ_REL}")
|
||||
get_filename_component(OBJ_DIR "${OBJ_PATH}" DIRECTORY)
|
||||
set(_deps "${CMAKE_SOURCE_DIR}/${SRC}" ${KERNEL_INC_SOURCES_ABS})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${OBJ_PATH}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${OBJ_DIR}"
|
||||
COMMAND ${CC} ${ASFLAGS_COMMON} ${ARCH_CFLAGS} -c "${CMAKE_SOURCE_DIR}/${SRC}" -o "${OBJ_PATH}"
|
||||
DEPENDS ${_deps}
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
set(${OUTPUT_LIST_VAR} ${${OUTPUT_LIST_VAR}} "${OBJ_PATH}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(add_user_c_object SRC OUTPUT_VAR)
|
||||
string(REGEX REPLACE "\\.c$" ".o" OBJ_REL "${SRC}")
|
||||
set(OBJ_PATH "${USER_OBJ_ROOT}/${OBJ_REL}")
|
||||
get_filename_component(OBJ_DIR "${OBJ_PATH}" DIRECTORY)
|
||||
set(_deps "${CMAKE_SOURCE_DIR}/${SRC}" ${USER_INC_SOURCES_ABS})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${OBJ_PATH}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${OBJ_DIR}"
|
||||
COMMAND ${USER_CC} ${USER_CFLAGS} -c "${CMAKE_SOURCE_DIR}/${SRC}" -o "${OBJ_PATH}"
|
||||
DEPENDS ${_deps}
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
set(${OUTPUT_VAR} "${OBJ_PATH}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
set(KERNEL_OBJECTS)
|
||||
foreach(SRC IN LISTS C_SOURCES)
|
||||
add_kernel_c_object("${SRC}" KERNEL_OBJECTS)
|
||||
endforeach()
|
||||
foreach(SRC IN LISTS ASM_SOURCES)
|
||||
add_kernel_asm_object("${SRC}" KERNEL_OBJECTS)
|
||||
endforeach()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${KERNEL_RUST_LIB}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${BUILD_ROOT}"
|
||||
COMMAND ${RUSTC} --crate-type staticlib -C panic=abort -O "${CMAKE_SOURCE_DIR}/clks/rust/src/lib.rs" -o "${KERNEL_RUST_LIB}"
|
||||
DEPENDS "${CMAKE_SOURCE_DIR}/clks/rust/src/lib.rs"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${KERNEL_ELF}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${BUILD_ROOT}"
|
||||
COMMAND ${LD} ${LDFLAGS_COMMON} -T "${LINKER_SCRIPT}" -o "${KERNEL_ELF}" ${KERNEL_OBJECTS} "${KERNEL_RUST_LIB}"
|
||||
DEPENDS ${KERNEL_OBJECTS} "${LINKER_SCRIPT}" "${KERNEL_RUST_LIB}" "${CMAKE_SOURCE_DIR}/clks/rust/src/lib.rs"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(kernel DEPENDS "${KERNEL_ELF}")
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${KERNEL_SYMBOLS_FILE}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${BUILD_ROOT}"
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
"-DNM_TOOL=${NM}"
|
||||
"-DADDR2LINE_TOOL=${ADDR2LINE}"
|
||||
"-DKERNEL_ELF=${KERNEL_ELF}"
|
||||
"-DOUT_SYMBOL_FILE=${KERNEL_SYMBOLS_FILE}"
|
||||
-P "${CMAKE_SOURCE_DIR}/cmake/gen_kernel_symbols.cmake"
|
||||
DEPENDS "${KERNEL_ELF}" "${CMAKE_SOURCE_DIR}/cmake/gen_kernel_symbols.cmake"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(kernel-symbols DEPENDS "${KERNEL_SYMBOLS_FILE}")
|
||||
add_dependencies(kernel-symbols kernel)
|
||||
|
||||
set(USER_COMMON_OBJECTS)
|
||||
foreach(SRC IN LISTS USER_COMMON_SOURCES)
|
||||
add_user_c_object("${SRC}" OBJ_OUT)
|
||||
list(APPEND USER_COMMON_OBJECTS "${OBJ_OUT}")
|
||||
endforeach()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${USER_RUST_LIB}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${USER_LIB_DIR}"
|
||||
COMMAND ${RUSTC} --crate-type staticlib -C panic=abort -O "${CMAKE_SOURCE_DIR}/cleonos/rust/src/lib.rs" -o "${USER_RUST_LIB}"
|
||||
DEPENDS "${CMAKE_SOURCE_DIR}/cleonos/rust/src/lib.rs"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
set(USER_KELF_APP_NAMES)
|
||||
foreach(SRC IN LISTS USER_APP_KMAIN_SOURCES)
|
||||
get_filename_component(_stem "${SRC}" NAME_WE)
|
||||
string(REGEX REPLACE "_kmain$" "" _app_name "${_stem}")
|
||||
list(APPEND USER_KELF_APP_NAMES "${_app_name}")
|
||||
endforeach()
|
||||
list(REMOVE_DUPLICATES USER_KELF_APP_NAMES)
|
||||
|
||||
set(USER_APP_OUTPUTS)
|
||||
set(USER_APP_NAMES)
|
||||
set(RAMDISK_SHELL_APPS)
|
||||
set(RAMDISK_DRIVER_APPS)
|
||||
set(RAMDISK_SYSTEM_APPS)
|
||||
set(RAMDISK_ROOT_APPS)
|
||||
|
||||
set(USER_SHELL_COMMAND_APPS
|
||||
help args ls cat grep head tail wc cut uniq sort pwd cd exec pid spawn wait sleep yield
|
||||
bg fg jobs kill ps top
|
||||
procstat sysstat
|
||||
shutdown restart exit clear ansi ansitest wavplay fastfetch memstat fsstat taskstat userstat
|
||||
shstat stats tty dmesg kbdstat mkdir touch write append cp mv rm kdbg
|
||||
)
|
||||
|
||||
foreach(SRC IN LISTS USER_APP_MAIN_SOURCES)
|
||||
get_filename_component(_stem "${SRC}" NAME_WE)
|
||||
string(REGEX REPLACE "_main$" "" _app_name "${_stem}")
|
||||
string(TOUPPER "${_app_name}" _app_name_upper)
|
||||
string(REGEX REPLACE "[^A-Z0-9]" "_" _app_name_key "${_app_name_upper}")
|
||||
set(_app_enabled_var "CLEONOS_USER_APP_${_app_name_key}")
|
||||
|
||||
list(FIND USER_KELF_APP_NAMES "${_app_name}" _shadowed_by_kmain)
|
||||
if(NOT _shadowed_by_kmain EQUAL -1)
|
||||
cl_log_info("skip ${SRC} because ${_app_name}_kmain.c exists")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED ${_app_enabled_var})
|
||||
set(${_app_enabled_var} ON CACHE BOOL "Build user app ${_app_name}")
|
||||
else()
|
||||
set(${_app_enabled_var} ${${_app_enabled_var}} CACHE BOOL "Build user app ${_app_name}" FORCE)
|
||||
endif()
|
||||
|
||||
if(NOT ${_app_enabled_var})
|
||||
cl_log_info("menuconfig: skip disabled user app ${_app_name}")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
list(FIND USER_APP_NAMES "${_app_name}" _dup_name_idx)
|
||||
if(NOT _dup_name_idx EQUAL -1)
|
||||
cl_log_error("duplicate user app name: ${_app_name}")
|
||||
endif()
|
||||
list(APPEND USER_APP_NAMES "${_app_name}")
|
||||
|
||||
add_user_c_object("${SRC}" _user_obj)
|
||||
|
||||
set(_app_specific_objs)
|
||||
file(GLOB _app_specific_abs CONFIGURE_DEPENDS
|
||||
"${CMAKE_SOURCE_DIR}/cleonos/c/apps/${_app_name}_*.c"
|
||||
"${CMAKE_SOURCE_DIR}/cleonos/c/apps/${_app_name}/*.c"
|
||||
)
|
||||
|
||||
list(FIND USER_SHELL_COMMAND_APPS "${_app_name}" _shell_cmd_idx)
|
||||
if(NOT _shell_cmd_idx EQUAL -1)
|
||||
list(APPEND _app_specific_abs "${CMAKE_SOURCE_DIR}/cleonos/c/apps/cmd_runtime.c")
|
||||
endif()
|
||||
foreach(_extra_abs IN LISTS _app_specific_abs)
|
||||
file(RELATIVE_PATH _extra_rel "${CMAKE_SOURCE_DIR}" "${_extra_abs}")
|
||||
|
||||
if(_extra_rel STREQUAL "${SRC}")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
if(_extra_rel MATCHES "_kmain\\.c$")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
add_user_c_object("${_extra_rel}" _extra_obj)
|
||||
list(APPEND _app_specific_objs "${_extra_obj}")
|
||||
endforeach()
|
||||
list(REMOVE_DUPLICATES _app_specific_objs)
|
||||
|
||||
set(_app_out "${USER_APP_DIR}/${_app_name}.elf")
|
||||
add_custom_command(
|
||||
OUTPUT "${_app_out}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${USER_APP_DIR}"
|
||||
COMMAND ${USER_LD} ${USER_LDFLAGS} -o "${_app_out}" ${USER_COMMON_OBJECTS} "${_user_obj}" ${_app_specific_objs} "${USER_RUST_LIB}"
|
||||
DEPENDS ${USER_COMMON_OBJECTS} "${_user_obj}" ${_app_specific_objs} "${USER_RUST_LIB}" "${USER_LINKER_SCRIPT}"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
list(APPEND USER_APP_OUTPUTS "${_app_out}")
|
||||
if(_app_name MATCHES ".*drv$")
|
||||
list(APPEND RAMDISK_DRIVER_APPS "${_app_out}")
|
||||
elseif(_app_name STREQUAL "hello")
|
||||
list(APPEND RAMDISK_ROOT_APPS "${_app_out}")
|
||||
else()
|
||||
list(APPEND RAMDISK_SHELL_APPS "${_app_out}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
foreach(SRC IN LISTS USER_APP_KMAIN_SOURCES)
|
||||
get_filename_component(_stem "${SRC}" NAME_WE)
|
||||
string(REGEX REPLACE "_kmain$" "" _app_name "${_stem}")
|
||||
string(TOUPPER "${_app_name}" _app_name_upper)
|
||||
string(REGEX REPLACE "[^A-Z0-9]" "_" _app_name_key "${_app_name_upper}")
|
||||
set(_app_enabled_var "CLEONOS_USER_APP_${_app_name_key}")
|
||||
|
||||
if(NOT DEFINED ${_app_enabled_var})
|
||||
set(${_app_enabled_var} ON CACHE BOOL "Build user app ${_app_name}")
|
||||
else()
|
||||
set(${_app_enabled_var} ${${_app_enabled_var}} CACHE BOOL "Build user app ${_app_name}" FORCE)
|
||||
endif()
|
||||
|
||||
if(NOT ${_app_enabled_var})
|
||||
cl_log_info("menuconfig: skip disabled user app ${_app_name}")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
list(FIND USER_APP_NAMES "${_app_name}" _dup_name_idx)
|
||||
if(NOT _dup_name_idx EQUAL -1)
|
||||
cl_log_error("duplicate user app name: ${_app_name}")
|
||||
endif()
|
||||
list(APPEND USER_APP_NAMES "${_app_name}")
|
||||
|
||||
add_user_c_object("${SRC}" _kelf_obj)
|
||||
set(_app_out "${USER_APP_DIR}/${_app_name}.elf")
|
||||
add_custom_command(
|
||||
OUTPUT "${_app_out}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${USER_APP_DIR}"
|
||||
COMMAND ${USER_LD} ${KELF_LDFLAGS} -o "${_app_out}" "${_kelf_obj}"
|
||||
DEPENDS "${_kelf_obj}" "${KELF_LINKER_SCRIPT}"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
list(APPEND USER_APP_OUTPUTS "${_app_out}")
|
||||
list(APPEND RAMDISK_SYSTEM_APPS "${_app_out}")
|
||||
endforeach()
|
||||
|
||||
if(NOT USER_APP_OUTPUTS)
|
||||
cl_log_error("no user ELF apps were discovered")
|
||||
endif()
|
||||
|
||||
add_custom_target(userapps DEPENDS ${USER_APP_OUTPUTS})
|
||||
|
||||
add_custom_command(
|
||||
TARGET userapps
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
"-DNO_COLOR=${NO_COLOR}"
|
||||
"-DLOG_LEVEL=INFO"
|
||||
"-DLOG_TEXT=user elf apps ready"
|
||||
-P "${CL_LOG_EMIT_SCRIPT}"
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE RAMDISK_FILES CONFIGURE_DEPENDS "${CMAKE_SOURCE_DIR}/ramdisk/*")
|
||||
set(RAMDISK_ROOT_STAMP "${BUILD_ROOT}/.ramdisk_root.stamp")
|
||||
set(RAMDISK_COPY_COMMANDS)
|
||||
foreach(_app IN LISTS RAMDISK_SHELL_APPS)
|
||||
get_filename_component(_app_file "${_app}" NAME)
|
||||
list(APPEND RAMDISK_COPY_COMMANDS COMMAND ${CMAKE_COMMAND} -E copy "${_app}" "${RAMDISK_ROOT}/shell/${_app_file}")
|
||||
endforeach()
|
||||
foreach(_app IN LISTS RAMDISK_ROOT_APPS)
|
||||
get_filename_component(_app_file "${_app}" NAME)
|
||||
list(APPEND RAMDISK_COPY_COMMANDS COMMAND ${CMAKE_COMMAND} -E copy "${_app}" "${RAMDISK_ROOT}/${_app_file}")
|
||||
endforeach()
|
||||
foreach(_app IN LISTS RAMDISK_DRIVER_APPS)
|
||||
get_filename_component(_app_file "${_app}" NAME)
|
||||
list(APPEND RAMDISK_COPY_COMMANDS COMMAND ${CMAKE_COMMAND} -E copy "${_app}" "${RAMDISK_ROOT}/driver/${_app_file}")
|
||||
endforeach()
|
||||
foreach(_app IN LISTS RAMDISK_SYSTEM_APPS)
|
||||
get_filename_component(_app_file "${_app}" NAME)
|
||||
list(APPEND RAMDISK_COPY_COMMANDS COMMAND ${CMAKE_COMMAND} -E copy "${_app}" "${RAMDISK_ROOT}/system/${_app_file}")
|
||||
endforeach()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${RAMDISK_ROOT_STAMP}"
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -rf "${RAMDISK_ROOT}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${RAMDISK_ROOT}"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/ramdisk" "${RAMDISK_ROOT}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${RAMDISK_ROOT}/system" "${RAMDISK_ROOT}/shell" "${RAMDISK_ROOT}/driver" "${RAMDISK_ROOT}/dev"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${KERNEL_SYMBOLS_FILE}" "${RAMDISK_ROOT}/system/kernel.sym"
|
||||
${RAMDISK_COPY_COMMANDS}
|
||||
COMMAND ${CMAKE_COMMAND} -E touch "${RAMDISK_ROOT_STAMP}"
|
||||
DEPENDS ${RAMDISK_FILES} ${USER_APP_OUTPUTS} "${KERNEL_SYMBOLS_FILE}"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(ramdisk-root DEPENDS "${RAMDISK_ROOT_STAMP}")
|
||||
add_dependencies(ramdisk-root userapps)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${RAMDISK_IMAGE}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${BUILD_ROOT}"
|
||||
COMMAND ${TAR} -C "${RAMDISK_ROOT}" -cf "${RAMDISK_IMAGE}" .
|
||||
DEPENDS "${RAMDISK_ROOT_STAMP}"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(ramdisk DEPENDS "${RAMDISK_IMAGE}")
|
||||
include("${CMAKE_SOURCE_DIR}/clks/CMakeLists.txt")
|
||||
include("${CMAKE_SOURCE_DIR}/cleonos/CMakeLists.txt")
|
||||
|
||||
add_custom_target(setup-tools
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
|
||||
328
cleonos/CMakeLists.txt
Normal file
328
cleonos/CMakeLists.txt
Normal file
@@ -0,0 +1,328 @@
|
||||
file(GLOB_RECURSE USER_INC_SOURCES_ABS CONFIGURE_DEPENDS
|
||||
"${CMAKE_SOURCE_DIR}/cleonos/**/*.inc"
|
||||
)
|
||||
list(SORT USER_INC_SOURCES_ABS)
|
||||
|
||||
file(GLOB_RECURSE USER_COMMON_SOURCES_ABS CONFIGURE_DEPENDS "${CMAKE_SOURCE_DIR}/cleonos/c/src/*.c")
|
||||
set(USER_COMMON_SOURCES)
|
||||
foreach(_abs IN LISTS USER_COMMON_SOURCES_ABS)
|
||||
file(RELATIVE_PATH _rel "${CMAKE_SOURCE_DIR}" "${_abs}")
|
||||
list(APPEND USER_COMMON_SOURCES "${_rel}")
|
||||
endforeach()
|
||||
list(SORT USER_COMMON_SOURCES)
|
||||
|
||||
file(GLOB USER_APP_MAIN_SOURCES_ABS CONFIGURE_DEPENDS "${CMAKE_SOURCE_DIR}/cleonos/c/apps/*_main.c")
|
||||
file(GLOB USER_APP_KMAIN_SOURCES_ABS CONFIGURE_DEPENDS "${CMAKE_SOURCE_DIR}/cleonos/c/apps/*_kmain.c")
|
||||
|
||||
set(USER_APP_MAIN_SOURCES)
|
||||
set(USER_APP_KMAIN_SOURCES)
|
||||
foreach(_abs IN LISTS USER_APP_MAIN_SOURCES_ABS)
|
||||
file(RELATIVE_PATH _rel "${CMAKE_SOURCE_DIR}" "${_abs}")
|
||||
list(APPEND USER_APP_MAIN_SOURCES "${_rel}")
|
||||
endforeach()
|
||||
foreach(_abs IN LISTS USER_APP_KMAIN_SOURCES_ABS)
|
||||
file(RELATIVE_PATH _rel "${CMAKE_SOURCE_DIR}" "${_abs}")
|
||||
list(APPEND USER_APP_KMAIN_SOURCES "${_rel}")
|
||||
endforeach()
|
||||
list(SORT USER_APP_MAIN_SOURCES)
|
||||
list(SORT USER_APP_KMAIN_SOURCES)
|
||||
|
||||
if(NOT USER_COMMON_SOURCES)
|
||||
cl_log_error("no user common sources found in cleonos/c/src/")
|
||||
endif()
|
||||
if(NOT USER_APP_MAIN_SOURCES)
|
||||
cl_log_error("no user app *_main.c found in cleonos/c/apps/")
|
||||
endif()
|
||||
if(NOT USER_APP_KMAIN_SOURCES)
|
||||
cl_log_error("no kernel app *_kmain.c found in cleonos/c/apps/")
|
||||
endif()
|
||||
|
||||
function(add_user_c_object SRC OUTPUT_VAR)
|
||||
string(REGEX REPLACE "\\.c$" ".o" OBJ_REL "${SRC}")
|
||||
set(OBJ_PATH "${USER_OBJ_ROOT}/${OBJ_REL}")
|
||||
get_filename_component(OBJ_DIR "${OBJ_PATH}" DIRECTORY)
|
||||
set(_deps "${CMAKE_SOURCE_DIR}/${SRC}" ${USER_INC_SOURCES_ABS})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${OBJ_PATH}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${OBJ_DIR}"
|
||||
COMMAND ${USER_CC} ${USER_CFLAGS} -c "${CMAKE_SOURCE_DIR}/${SRC}" -o "${OBJ_PATH}"
|
||||
DEPENDS ${_deps}
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
set(${OUTPUT_VAR} "${OBJ_PATH}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(add_user_c_object_doom SRC OUTPUT_VAR)
|
||||
string(REGEX REPLACE "\\.c$" ".o" OBJ_REL "${SRC}")
|
||||
set(OBJ_PATH "${USER_OBJ_ROOT}/${OBJ_REL}")
|
||||
get_filename_component(OBJ_DIR "${OBJ_PATH}" DIRECTORY)
|
||||
set(_deps "${CMAKE_SOURCE_DIR}/${SRC}" ${USER_INC_SOURCES_ABS} ${DOOMGENERIC_DEP_SOURCES_ABS})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${OBJ_PATH}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${OBJ_DIR}"
|
||||
COMMAND ${USER_CC} ${USER_CFLAGS_DOOM} -c "${CMAKE_SOURCE_DIR}/${SRC}" -o "${OBJ_PATH}"
|
||||
DEPENDS ${_deps}
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
set(${OUTPUT_VAR} "${OBJ_PATH}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
set(USER_COMMON_OBJECTS)
|
||||
foreach(SRC IN LISTS USER_COMMON_SOURCES)
|
||||
add_user_c_object("${SRC}" OBJ_OUT)
|
||||
list(APPEND USER_COMMON_OBJECTS "${OBJ_OUT}")
|
||||
endforeach()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${USER_RUST_LIB}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${USER_LIB_DIR}"
|
||||
COMMAND ${RUSTC} --crate-type staticlib -C panic=abort -O "${CMAKE_SOURCE_DIR}/cleonos/rust/src/lib.rs" -o "${USER_RUST_LIB}"
|
||||
DEPENDS "${CMAKE_SOURCE_DIR}/cleonos/rust/src/lib.rs"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
set(USER_KELF_APP_NAMES)
|
||||
foreach(SRC IN LISTS USER_APP_KMAIN_SOURCES)
|
||||
get_filename_component(_stem "${SRC}" NAME_WE)
|
||||
string(REGEX REPLACE "_kmain$" "" _app_name "${_stem}")
|
||||
list(APPEND USER_KELF_APP_NAMES "${_app_name}")
|
||||
endforeach()
|
||||
list(REMOVE_DUPLICATES USER_KELF_APP_NAMES)
|
||||
|
||||
set(USER_APP_OUTPUTS)
|
||||
set(USER_APP_NAMES)
|
||||
set(RAMDISK_SHELL_APPS)
|
||||
set(RAMDISK_DRIVER_APPS)
|
||||
set(RAMDISK_SYSTEM_APPS)
|
||||
set(RAMDISK_ROOT_APPS)
|
||||
|
||||
set(DOOMGENERIC_DIR "${CMAKE_SOURCE_DIR}/cleonos/third-party/doomgeneric/doomgeneric")
|
||||
set(DOOMGENERIC_SRC_BASENAMES
|
||||
dummy am_map doomdef doomstat dstrings d_event d_items d_iwad d_loop d_main d_mode d_net f_finale f_wipe
|
||||
g_game hu_lib hu_stuff info i_cdmus i_endoom i_joystick i_scale i_sound i_system i_timer memio m_argv
|
||||
m_bbox m_cheat m_config m_controls m_fixed m_menu m_misc m_random p_ceilng p_doors p_enemy p_floor
|
||||
p_inter p_lights p_map p_maputl p_mobj p_plats p_pspr p_saveg p_setup p_sight p_spec p_switch p_telept
|
||||
p_tick p_user r_bsp r_data r_draw r_main r_plane r_segs r_sky r_things sha1 sounds statdump st_lib st_stuff
|
||||
s_sound tables v_video wi_stuff w_checksum w_file w_main w_wad z_zone w_file_stdc i_input i_video doomgeneric
|
||||
)
|
||||
set(DOOMGENERIC_APP_SOURCES)
|
||||
foreach(_base IN LISTS DOOMGENERIC_SRC_BASENAMES)
|
||||
list(APPEND DOOMGENERIC_APP_SOURCES "cleonos/third-party/doomgeneric/doomgeneric/${_base}.c")
|
||||
endforeach()
|
||||
set(DOOMGENERIC_REQUIRED_SOURCE "${CMAKE_SOURCE_DIR}/cleonos/third-party/doomgeneric/doomgeneric/dummy.c")
|
||||
if(EXISTS "${DOOMGENERIC_REQUIRED_SOURCE}")
|
||||
set(DOOMGENERIC_AVAILABLE ON)
|
||||
else()
|
||||
set(DOOMGENERIC_AVAILABLE OFF)
|
||||
cl_log_warn("doomgeneric sources missing, doom app will be skipped: ${DOOMGENERIC_REQUIRED_SOURCE}")
|
||||
endif()
|
||||
file(GLOB_RECURSE DOOMGENERIC_DEP_SOURCES_ABS CONFIGURE_DEPENDS
|
||||
"${CMAKE_SOURCE_DIR}/cleonos/third-party/doomgeneric/doomgeneric/*.h"
|
||||
"${CMAKE_SOURCE_DIR}/cleonos/c/apps/doom/*.h"
|
||||
)
|
||||
list(SORT DOOMGENERIC_DEP_SOURCES_ABS)
|
||||
|
||||
set(USER_SHELL_COMMAND_APPS
|
||||
help args ls cat grep head tail wc cut uniq sort pwd cd exec pid spawn wait sleep yield
|
||||
bg fg jobs kill ps top
|
||||
procstat sysstat
|
||||
shutdown restart exit clear ansi ansitest wavplay fastfetch memstat fsstat taskstat userstat
|
||||
shstat stats tty dmesg kbdstat mkdir touch write append cp mv rm kdbg bmpview qrcode
|
||||
)
|
||||
|
||||
foreach(SRC IN LISTS USER_APP_MAIN_SOURCES)
|
||||
get_filename_component(_stem "${SRC}" NAME_WE)
|
||||
string(REGEX REPLACE "_main$" "" _app_name "${_stem}")
|
||||
string(TOUPPER "${_app_name}" _app_name_upper)
|
||||
string(REGEX REPLACE "[^A-Z0-9]" "_" _app_name_key "${_app_name_upper}")
|
||||
set(_app_enabled_var "CLEONOS_USER_APP_${_app_name_key}")
|
||||
|
||||
list(FIND USER_KELF_APP_NAMES "${_app_name}" _shadowed_by_kmain)
|
||||
if(NOT _shadowed_by_kmain EQUAL -1)
|
||||
cl_log_info("skip ${SRC} because ${_app_name}_kmain.c exists")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED ${_app_enabled_var})
|
||||
set(${_app_enabled_var} ON CACHE BOOL "Build user app ${_app_name}")
|
||||
else()
|
||||
set(${_app_enabled_var} ${${_app_enabled_var}} CACHE BOOL "Build user app ${_app_name}" FORCE)
|
||||
endif()
|
||||
|
||||
if(NOT ${_app_enabled_var})
|
||||
cl_log_info("menuconfig: skip disabled user app ${_app_name}")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
if(_app_name STREQUAL "doom" AND NOT DOOMGENERIC_AVAILABLE)
|
||||
cl_log_warn("skip user app doom because doomgeneric sources are unavailable")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
list(FIND USER_APP_NAMES "${_app_name}" _dup_name_idx)
|
||||
if(NOT _dup_name_idx EQUAL -1)
|
||||
cl_log_error("duplicate user app name: ${_app_name}")
|
||||
endif()
|
||||
list(APPEND USER_APP_NAMES "${_app_name}")
|
||||
|
||||
add_user_c_object("${SRC}" _user_obj)
|
||||
|
||||
set(_app_specific_objs)
|
||||
file(GLOB _app_specific_abs CONFIGURE_DEPENDS
|
||||
"${CMAKE_SOURCE_DIR}/cleonos/c/apps/${_app_name}_*.c"
|
||||
"${CMAKE_SOURCE_DIR}/cleonos/c/apps/${_app_name}/*.c"
|
||||
)
|
||||
set(_app_common_objects ${USER_COMMON_OBJECTS})
|
||||
|
||||
if(_app_name STREQUAL "doom")
|
||||
foreach(_doom_src IN LISTS DOOMGENERIC_APP_SOURCES)
|
||||
list(APPEND _app_specific_abs "${CMAKE_SOURCE_DIR}/${_doom_src}")
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
list(FIND USER_SHELL_COMMAND_APPS "${_app_name}" _shell_cmd_idx)
|
||||
if(NOT _shell_cmd_idx EQUAL -1)
|
||||
list(APPEND _app_specific_abs "${CMAKE_SOURCE_DIR}/cleonos/c/apps/cmd_runtime.c")
|
||||
endif()
|
||||
foreach(_extra_abs IN LISTS _app_specific_abs)
|
||||
file(RELATIVE_PATH _extra_rel "${CMAKE_SOURCE_DIR}" "${_extra_abs}")
|
||||
|
||||
if(_extra_rel STREQUAL "${SRC}")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
if(_extra_rel MATCHES "_kmain\\.c$")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
if(_app_name STREQUAL "doom")
|
||||
add_user_c_object_doom("${_extra_rel}" _extra_obj)
|
||||
else()
|
||||
add_user_c_object("${_extra_rel}" _extra_obj)
|
||||
endif()
|
||||
list(APPEND _app_specific_objs "${_extra_obj}")
|
||||
endforeach()
|
||||
list(REMOVE_DUPLICATES _app_specific_objs)
|
||||
|
||||
set(_app_out "${USER_APP_DIR}/${_app_name}.elf")
|
||||
add_custom_command(
|
||||
OUTPUT "${_app_out}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${USER_APP_DIR}"
|
||||
COMMAND ${USER_LD} ${USER_LDFLAGS} -o "${_app_out}" ${_app_common_objects} "${_user_obj}" ${_app_specific_objs} "${USER_RUST_LIB}"
|
||||
DEPENDS ${_app_common_objects} "${_user_obj}" ${_app_specific_objs} "${USER_RUST_LIB}" "${USER_LINKER_SCRIPT}"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
list(APPEND USER_APP_OUTPUTS "${_app_out}")
|
||||
if(_app_name MATCHES ".*drv$")
|
||||
list(APPEND RAMDISK_DRIVER_APPS "${_app_out}")
|
||||
elseif(_app_name STREQUAL "hello")
|
||||
list(APPEND RAMDISK_ROOT_APPS "${_app_out}")
|
||||
else()
|
||||
list(APPEND RAMDISK_SHELL_APPS "${_app_out}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
foreach(SRC IN LISTS USER_APP_KMAIN_SOURCES)
|
||||
get_filename_component(_stem "${SRC}" NAME_WE)
|
||||
string(REGEX REPLACE "_kmain$" "" _app_name "${_stem}")
|
||||
string(TOUPPER "${_app_name}" _app_name_upper)
|
||||
string(REGEX REPLACE "[^A-Z0-9]" "_" _app_name_key "${_app_name_upper}")
|
||||
set(_app_enabled_var "CLEONOS_USER_APP_${_app_name_key}")
|
||||
|
||||
if(NOT DEFINED ${_app_enabled_var})
|
||||
set(${_app_enabled_var} ON CACHE BOOL "Build user app ${_app_name}")
|
||||
else()
|
||||
set(${_app_enabled_var} ${${_app_enabled_var}} CACHE BOOL "Build user app ${_app_name}" FORCE)
|
||||
endif()
|
||||
|
||||
if(NOT ${_app_enabled_var})
|
||||
cl_log_info("menuconfig: skip disabled user app ${_app_name}")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
list(FIND USER_APP_NAMES "${_app_name}" _dup_name_idx)
|
||||
if(NOT _dup_name_idx EQUAL -1)
|
||||
cl_log_error("duplicate user app name: ${_app_name}")
|
||||
endif()
|
||||
list(APPEND USER_APP_NAMES "${_app_name}")
|
||||
|
||||
add_user_c_object("${SRC}" _kelf_obj)
|
||||
set(_app_out "${USER_APP_DIR}/${_app_name}.elf")
|
||||
add_custom_command(
|
||||
OUTPUT "${_app_out}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${USER_APP_DIR}"
|
||||
COMMAND ${USER_LD} ${KELF_LDFLAGS} -o "${_app_out}" "${_kelf_obj}"
|
||||
DEPENDS "${_kelf_obj}" "${KELF_LINKER_SCRIPT}"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
list(APPEND USER_APP_OUTPUTS "${_app_out}")
|
||||
list(APPEND RAMDISK_SYSTEM_APPS "${_app_out}")
|
||||
endforeach()
|
||||
|
||||
if(NOT USER_APP_OUTPUTS)
|
||||
cl_log_error("no user ELF apps were discovered")
|
||||
endif()
|
||||
|
||||
add_custom_target(userapps DEPENDS ${USER_APP_OUTPUTS})
|
||||
|
||||
add_custom_command(
|
||||
TARGET userapps
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
"-DNO_COLOR=${NO_COLOR}"
|
||||
"-DLOG_LEVEL=INFO"
|
||||
"-DLOG_TEXT=user elf apps ready"
|
||||
-P "${CL_LOG_EMIT_SCRIPT}"
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE RAMDISK_FILES CONFIGURE_DEPENDS "${CMAKE_SOURCE_DIR}/ramdisk/*")
|
||||
set(RAMDISK_ROOT_STAMP "${BUILD_ROOT}/.ramdisk_root.stamp")
|
||||
set(RAMDISK_COPY_COMMANDS)
|
||||
foreach(_app IN LISTS RAMDISK_SHELL_APPS)
|
||||
get_filename_component(_app_file "${_app}" NAME)
|
||||
list(APPEND RAMDISK_COPY_COMMANDS COMMAND ${CMAKE_COMMAND} -E copy "${_app}" "${RAMDISK_ROOT}/shell/${_app_file}")
|
||||
endforeach()
|
||||
foreach(_app IN LISTS RAMDISK_ROOT_APPS)
|
||||
get_filename_component(_app_file "${_app}" NAME)
|
||||
list(APPEND RAMDISK_COPY_COMMANDS COMMAND ${CMAKE_COMMAND} -E copy "${_app}" "${RAMDISK_ROOT}/${_app_file}")
|
||||
endforeach()
|
||||
foreach(_app IN LISTS RAMDISK_DRIVER_APPS)
|
||||
get_filename_component(_app_file "${_app}" NAME)
|
||||
list(APPEND RAMDISK_COPY_COMMANDS COMMAND ${CMAKE_COMMAND} -E copy "${_app}" "${RAMDISK_ROOT}/driver/${_app_file}")
|
||||
endforeach()
|
||||
foreach(_app IN LISTS RAMDISK_SYSTEM_APPS)
|
||||
get_filename_component(_app_file "${_app}" NAME)
|
||||
list(APPEND RAMDISK_COPY_COMMANDS COMMAND ${CMAKE_COMMAND} -E copy "${_app}" "${RAMDISK_ROOT}/system/${_app_file}")
|
||||
endforeach()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${RAMDISK_ROOT_STAMP}"
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -rf "${RAMDISK_ROOT}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${RAMDISK_ROOT}"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/ramdisk" "${RAMDISK_ROOT}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${RAMDISK_ROOT}/system" "${RAMDISK_ROOT}/shell" "${RAMDISK_ROOT}/driver" "${RAMDISK_ROOT}/dev"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${KERNEL_SYMBOLS_FILE}" "${RAMDISK_ROOT}/system/kernel.sym"
|
||||
${RAMDISK_COPY_COMMANDS}
|
||||
COMMAND ${CMAKE_COMMAND} -E touch "${RAMDISK_ROOT_STAMP}"
|
||||
DEPENDS ${RAMDISK_FILES} ${USER_APP_OUTPUTS} "${KERNEL_SYMBOLS_FILE}"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(ramdisk-root DEPENDS "${RAMDISK_ROOT_STAMP}")
|
||||
add_dependencies(ramdisk-root userapps)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${RAMDISK_IMAGE}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${BUILD_ROOT}"
|
||||
COMMAND ${TAR} -C "${RAMDISK_ROOT}" -cf "${RAMDISK_IMAGE}" .
|
||||
DEPENDS "${RAMDISK_ROOT_STAMP}"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(ramdisk DEPENDS "${RAMDISK_IMAGE}")
|
||||
411
cleonos/c/apps/bmpview_main.c
Normal file
411
cleonos/c/apps/bmpview_main.c
Normal file
@@ -0,0 +1,411 @@
|
||||
#include "cmd_runtime.h"
|
||||
#include <stdio.h>
|
||||
|
||||
#define USH_BMPVIEW_DEFAULT_COLS 80ULL
|
||||
#define USH_BMPVIEW_MAX_COLS 160ULL
|
||||
#define USH_BMPVIEW_MAX_ROWS 120ULL
|
||||
#define USH_BMPVIEW_MAX_IMAGE_WIDTH 4096ULL
|
||||
#define USH_BMPVIEW_MAX_IMAGE_HEIGHT 4096ULL
|
||||
#define USH_BMPVIEW_MAX_ROW_BYTES 16384U
|
||||
|
||||
typedef struct ush_bmpview_info {
|
||||
u64 width;
|
||||
u64 height;
|
||||
u64 bytes_per_pixel;
|
||||
u64 row_stride;
|
||||
u64 pixel_offset;
|
||||
int top_down;
|
||||
} ush_bmpview_info;
|
||||
|
||||
static unsigned char ush_bmpview_row_buf[USH_BMPVIEW_MAX_ROW_BYTES];
|
||||
static char ush_bmpview_render[USH_BMPVIEW_MAX_ROWS][USH_BMPVIEW_MAX_COLS + 1U];
|
||||
static u64 ush_bmpview_sample_rows[USH_BMPVIEW_MAX_ROWS];
|
||||
|
||||
static unsigned int ush_bmpview_le16(const unsigned char *ptr) {
|
||||
return (unsigned int)ptr[0] | ((unsigned int)ptr[1] << 8U);
|
||||
}
|
||||
|
||||
static unsigned int ush_bmpview_le32(const unsigned char *ptr) {
|
||||
return (unsigned int)ptr[0] | ((unsigned int)ptr[1] << 8U) | ((unsigned int)ptr[2] << 16U) |
|
||||
((unsigned int)ptr[3] << 24U);
|
||||
}
|
||||
|
||||
static int ush_bmpview_le32s(const unsigned char *ptr) {
|
||||
return (int)((unsigned int)ush_bmpview_le32(ptr));
|
||||
}
|
||||
|
||||
static int ush_bmpview_read_exact(u64 fd, unsigned char *out, u64 size) {
|
||||
u64 done = 0ULL;
|
||||
|
||||
if (out == (unsigned char *)0 || size == 0ULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
while (done < size) {
|
||||
u64 got = cleonos_sys_fd_read(fd, out + done, size - done);
|
||||
|
||||
if (got == (u64)-1 || got == 0ULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
done += got;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int ush_bmpview_skip_bytes(u64 fd, u64 size) {
|
||||
unsigned char scratch[256];
|
||||
u64 left = size;
|
||||
|
||||
while (left > 0ULL) {
|
||||
u64 want = left;
|
||||
u64 got;
|
||||
|
||||
if (want > (u64)sizeof(scratch)) {
|
||||
want = (u64)sizeof(scratch);
|
||||
}
|
||||
|
||||
got = cleonos_sys_fd_read(fd, scratch, want);
|
||||
|
||||
if (got == (u64)-1 || got == 0ULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
left -= got;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int ush_bmpview_parse_header(u64 fd, ush_bmpview_info *out_info) {
|
||||
unsigned char header[54];
|
||||
unsigned int dib_size;
|
||||
int width_s;
|
||||
int height_s;
|
||||
unsigned int planes;
|
||||
unsigned int bits_per_pixel;
|
||||
unsigned int compression;
|
||||
u64 width_u;
|
||||
u64 height_u;
|
||||
u64 row_stride;
|
||||
u64 bytes_per_pixel;
|
||||
|
||||
if (out_info == (ush_bmpview_info *)0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ush_bmpview_read_exact(fd, header, (u64)sizeof(header)) == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (header[0] != (unsigned char)'B' || header[1] != (unsigned char)'M') {
|
||||
return 0;
|
||||
}
|
||||
|
||||
dib_size = ush_bmpview_le32(&header[14]);
|
||||
if (dib_size < 40U) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
width_s = ush_bmpview_le32s(&header[18]);
|
||||
height_s = ush_bmpview_le32s(&header[22]);
|
||||
planes = ush_bmpview_le16(&header[26]);
|
||||
bits_per_pixel = ush_bmpview_le16(&header[28]);
|
||||
compression = ush_bmpview_le32(&header[30]);
|
||||
|
||||
if (planes != 1U) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (width_s <= 0 || height_s == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (bits_per_pixel != 24U && bits_per_pixel != 32U) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (compression != 0U) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
width_u = (u64)(unsigned int)width_s;
|
||||
if (height_s < 0) {
|
||||
i64 signed_h = (i64)height_s;
|
||||
height_u = (u64)(-signed_h);
|
||||
out_info->top_down = 1;
|
||||
} else {
|
||||
height_u = (u64)(unsigned int)height_s;
|
||||
out_info->top_down = 0;
|
||||
}
|
||||
|
||||
if (width_u == 0ULL || height_u == 0ULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (width_u > USH_BMPVIEW_MAX_IMAGE_WIDTH || height_u > USH_BMPVIEW_MAX_IMAGE_HEIGHT) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
bytes_per_pixel = (u64)(bits_per_pixel / 8U);
|
||||
row_stride = (width_u * bytes_per_pixel + 3ULL) & ~3ULL;
|
||||
|
||||
if (row_stride == 0ULL || row_stride > (u64)USH_BMPVIEW_MAX_ROW_BYTES) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
out_info->pixel_offset = (u64)ush_bmpview_le32(&header[10]);
|
||||
if (out_info->pixel_offset < (u64)sizeof(header)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
out_info->width = width_u;
|
||||
out_info->height = height_u;
|
||||
out_info->bytes_per_pixel = bytes_per_pixel;
|
||||
out_info->row_stride = row_stride;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static char ush_bmpview_luma_char(unsigned int r, unsigned int g, unsigned int b) {
|
||||
static const char ramp[] = " .:-=+*#%@";
|
||||
unsigned int luma = (77U * r + 150U * g + 29U * b) >> 8U;
|
||||
unsigned int idx = (luma * 9U) / 255U;
|
||||
return ramp[idx];
|
||||
}
|
||||
|
||||
static int ush_bmpview_parse_args(const char *arg, char *out_path, u64 out_path_size, u64 *out_cols) {
|
||||
char first[USH_PATH_MAX];
|
||||
char second[32];
|
||||
const char *rest = "";
|
||||
const char *rest2 = "";
|
||||
|
||||
if (out_path == (char *)0 || out_cols == (u64 *)0 || out_path_size == 0ULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
*out_cols = USH_BMPVIEW_DEFAULT_COLS;
|
||||
out_path[0] = '\0';
|
||||
|
||||
if (arg == (const char *)0 || arg[0] == '\0') {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ush_split_first_and_rest(arg, first, (u64)sizeof(first), &rest) == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ush_streq(first, "--help") != 0 || ush_streq(first, "-h") != 0) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
ush_copy(out_path, out_path_size, first);
|
||||
|
||||
if (rest != (const char *)0 && rest[0] != '\0') {
|
||||
if (ush_split_first_and_rest(rest, second, (u64)sizeof(second), &rest2) == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ush_parse_u64_dec(second, out_cols) == 0 || *out_cols == 0ULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (rest2 != (const char *)0 && rest2[0] != '\0') {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int ush_cmd_bmpview(const ush_state *sh, const char *arg) {
|
||||
ush_bmpview_info info;
|
||||
char path_arg[USH_PATH_MAX];
|
||||
char abs_path[USH_PATH_MAX];
|
||||
u64 cols = USH_BMPVIEW_DEFAULT_COLS;
|
||||
u64 out_w;
|
||||
u64 out_h;
|
||||
u64 file_row;
|
||||
u64 fd;
|
||||
int parse_ret;
|
||||
|
||||
if (sh == (const ush_state *)0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
parse_ret = ush_bmpview_parse_args(arg, path_arg, (u64)sizeof(path_arg), &cols);
|
||||
if (parse_ret == 2) {
|
||||
ush_writeln("usage: bmpview <file.bmp> [cols]");
|
||||
ush_writeln("note: supports uncompressed 24/32-bit BMP");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (parse_ret == 0) {
|
||||
ush_writeln("bmpview: usage bmpview <file.bmp> [cols]");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ush_resolve_path(sh, path_arg, abs_path, (u64)sizeof(abs_path)) == 0) {
|
||||
ush_writeln("bmpview: invalid path");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (cleonos_sys_fs_stat_type(abs_path) != 1ULL) {
|
||||
ush_writeln("bmpview: file not found");
|
||||
return 0;
|
||||
}
|
||||
|
||||
fd = cleonos_sys_fd_open(abs_path, CLEONOS_O_RDONLY, 0ULL);
|
||||
if (fd == (u64)-1) {
|
||||
ush_writeln("bmpview: open failed");
|
||||
return 0;
|
||||
}
|
||||
|
||||
ush_zero(&info, (u64)sizeof(info));
|
||||
if (ush_bmpview_parse_header(fd, &info) == 0) {
|
||||
(void)cleonos_sys_fd_close(fd);
|
||||
ush_writeln("bmpview: unsupported or invalid bmp");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (info.pixel_offset > 54ULL) {
|
||||
if (ush_bmpview_skip_bytes(fd, info.pixel_offset - 54ULL) == 0) {
|
||||
(void)cleonos_sys_fd_close(fd);
|
||||
ush_writeln("bmpview: failed to seek pixel data");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (cols > USH_BMPVIEW_MAX_COLS) {
|
||||
cols = USH_BMPVIEW_MAX_COLS;
|
||||
}
|
||||
if (cols > info.width) {
|
||||
cols = info.width;
|
||||
}
|
||||
if (cols == 0ULL) {
|
||||
cols = 1ULL;
|
||||
}
|
||||
|
||||
out_w = cols;
|
||||
out_h = (info.height * out_w) / (info.width * 2ULL);
|
||||
if (out_h == 0ULL) {
|
||||
out_h = 1ULL;
|
||||
}
|
||||
if (out_h > USH_BMPVIEW_MAX_ROWS) {
|
||||
out_h = USH_BMPVIEW_MAX_ROWS;
|
||||
}
|
||||
if (out_h > info.height) {
|
||||
out_h = info.height;
|
||||
}
|
||||
|
||||
{
|
||||
u64 oy;
|
||||
u64 ox;
|
||||
|
||||
for (oy = 0ULL; oy < out_h; oy++) {
|
||||
ush_bmpview_sample_rows[oy] = (oy * info.height) / out_h;
|
||||
for (ox = 0ULL; ox < out_w; ox++) {
|
||||
ush_bmpview_render[oy][ox] = ' ';
|
||||
}
|
||||
ush_bmpview_render[oy][out_w] = '\0';
|
||||
}
|
||||
}
|
||||
|
||||
for (file_row = 0ULL; file_row < info.height; file_row++) {
|
||||
u64 display_row;
|
||||
u64 oy;
|
||||
|
||||
if (ush_bmpview_read_exact(fd, ush_bmpview_row_buf, info.row_stride) == 0) {
|
||||
(void)cleonos_sys_fd_close(fd);
|
||||
ush_writeln("bmpview: read pixel data failed");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (info.top_down != 0) {
|
||||
display_row = file_row;
|
||||
} else {
|
||||
display_row = (info.height - 1ULL) - file_row;
|
||||
}
|
||||
|
||||
for (oy = 0ULL; oy < out_h; oy++) {
|
||||
u64 ox;
|
||||
|
||||
if (ush_bmpview_sample_rows[oy] != display_row) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (ox = 0ULL; ox < out_w; ox++) {
|
||||
u64 src_x = (ox * info.width) / out_w;
|
||||
u64 pix_off = src_x * info.bytes_per_pixel;
|
||||
unsigned int b;
|
||||
unsigned int g;
|
||||
unsigned int r;
|
||||
|
||||
if (pix_off + 2ULL >= info.row_stride) {
|
||||
ush_bmpview_render[oy][ox] = ' ';
|
||||
continue;
|
||||
}
|
||||
|
||||
b = (unsigned int)ush_bmpview_row_buf[pix_off + 0ULL];
|
||||
g = (unsigned int)ush_bmpview_row_buf[pix_off + 1ULL];
|
||||
r = (unsigned int)ush_bmpview_row_buf[pix_off + 2ULL];
|
||||
ush_bmpview_render[oy][ox] = ush_bmpview_luma_char(r, g, b);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
(void)cleonos_sys_fd_close(fd);
|
||||
|
||||
{
|
||||
u64 oy;
|
||||
for (oy = 0ULL; oy < out_h; oy++) {
|
||||
ush_writeln(ush_bmpview_render[oy]);
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int cleonos_app_main(void) {
|
||||
ush_cmd_ctx ctx;
|
||||
ush_cmd_ret ret;
|
||||
ush_state sh;
|
||||
char initial_cwd[USH_PATH_MAX];
|
||||
int has_context = 0;
|
||||
int success = 0;
|
||||
const char *arg = "";
|
||||
|
||||
ush_zero(&ctx, (u64)sizeof(ctx));
|
||||
ush_zero(&ret, (u64)sizeof(ret));
|
||||
ush_init_state(&sh);
|
||||
ush_copy(initial_cwd, (u64)sizeof(initial_cwd), sh.cwd);
|
||||
|
||||
if (ush_command_ctx_read(&ctx) != 0) {
|
||||
if (ctx.cmd[0] != '\0' && ush_streq(ctx.cmd, "bmpview") != 0) {
|
||||
has_context = 1;
|
||||
arg = ctx.arg;
|
||||
if (ctx.cwd[0] == '/') {
|
||||
ush_copy(sh.cwd, (u64)sizeof(sh.cwd), ctx.cwd);
|
||||
ush_copy(initial_cwd, (u64)sizeof(initial_cwd), sh.cwd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
success = ush_cmd_bmpview(&sh, arg);
|
||||
|
||||
if (has_context != 0) {
|
||||
if (ush_streq(sh.cwd, initial_cwd) == 0) {
|
||||
ret.flags |= USH_CMD_RET_FLAG_CWD;
|
||||
ush_copy(ret.cwd, (u64)sizeof(ret.cwd), sh.cwd);
|
||||
}
|
||||
|
||||
if (sh.exit_requested != 0) {
|
||||
ret.flags |= USH_CMD_RET_FLAG_EXIT;
|
||||
ret.exit_code = sh.exit_code;
|
||||
}
|
||||
|
||||
(void)ush_command_ret_write(&ret);
|
||||
}
|
||||
|
||||
return (success != 0) ? 0 : 1;
|
||||
}
|
||||
1472
cleonos/c/apps/doom/doom_compat.c
Normal file
1472
cleonos/c/apps/doom/doom_compat.c
Normal file
File diff suppressed because it is too large
Load Diff
20
cleonos/c/apps/doom/doom_shim.h
Normal file
20
cleonos/c/apps/doom/doom_shim.h
Normal file
@@ -0,0 +1,20 @@
|
||||
#ifndef CLEONOS_DOOM_SHIM_H
|
||||
#define CLEONOS_DOOM_SHIM_H
|
||||
|
||||
/* Redirect stdio-family APIs that clash with cleonos/c/src/stdio.c signatures. */
|
||||
#define fopen dg_fopen
|
||||
#define fclose dg_fclose
|
||||
#define fread dg_fread
|
||||
#define fwrite dg_fwrite
|
||||
#define fseek dg_fseek
|
||||
#define ftell dg_ftell
|
||||
#define fflush dg_fflush
|
||||
#define fgets dg_fgets
|
||||
#define fprintf dg_fprintf
|
||||
#define vfprintf dg_vfprintf
|
||||
#define feof dg_feof
|
||||
#define fileno dg_fileno
|
||||
#define perror dg_perror
|
||||
#define sscanf dg_sscanf
|
||||
|
||||
#endif
|
||||
200
cleonos/c/apps/doom/doomgeneric_clks.c
Normal file
200
cleonos/c/apps/doom/doomgeneric_clks.c
Normal file
@@ -0,0 +1,200 @@
|
||||
#include "doomgeneric.h"
|
||||
#include "doomkeys.h"
|
||||
|
||||
#include "../../include/cleonos_syscall.h"
|
||||
|
||||
#define CLEONOS_KEY_LEFT 0x01U
|
||||
#define CLEONOS_KEY_RIGHT 0x02U
|
||||
#define CLEONOS_KEY_UP 0x03U
|
||||
#define CLEONOS_KEY_DOWN 0x04U
|
||||
|
||||
#define DG_KEY_QUEUE_CAP 256U
|
||||
|
||||
struct dg_key_event {
|
||||
int pressed;
|
||||
unsigned char key;
|
||||
};
|
||||
|
||||
static struct dg_key_event g_key_queue[DG_KEY_QUEUE_CAP];
|
||||
static u64 g_key_r = 0ULL;
|
||||
static u64 g_key_w = 0ULL;
|
||||
|
||||
static cleonos_fb_info g_fb_info;
|
||||
static cleonos_fb_blit_req g_blit_req;
|
||||
static u64 g_scale = 1ULL;
|
||||
static u64 g_dst_x = 0ULL;
|
||||
static u64 g_dst_y = 0ULL;
|
||||
|
||||
static void dg_push_key(int pressed, unsigned char key) {
|
||||
u64 next = (g_key_w + 1ULL) % DG_KEY_QUEUE_CAP;
|
||||
|
||||
if (next == g_key_r) {
|
||||
return;
|
||||
}
|
||||
|
||||
g_key_queue[g_key_w].pressed = pressed;
|
||||
g_key_queue[g_key_w].key = key;
|
||||
g_key_w = next;
|
||||
}
|
||||
|
||||
static int dg_pop_key(int *pressed, unsigned char *key) {
|
||||
if (g_key_r == g_key_w || pressed == (int *)0 || key == (unsigned char *)0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
*pressed = g_key_queue[g_key_r].pressed;
|
||||
*key = g_key_queue[g_key_r].key;
|
||||
g_key_r = (g_key_r + 1ULL) % DG_KEY_QUEUE_CAP;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static unsigned char dg_translate_key(u64 code) {
|
||||
if (code == (u64)CLEONOS_KEY_LEFT) {
|
||||
return KEY_LEFTARROW;
|
||||
}
|
||||
|
||||
if (code == (u64)CLEONOS_KEY_RIGHT) {
|
||||
return KEY_RIGHTARROW;
|
||||
}
|
||||
|
||||
if (code == (u64)CLEONOS_KEY_UP) {
|
||||
return KEY_UPARROW;
|
||||
}
|
||||
|
||||
if (code == (u64)CLEONOS_KEY_DOWN) {
|
||||
return KEY_DOWNARROW;
|
||||
}
|
||||
|
||||
if (code == (u64)'\r' || code == (u64)'\n') {
|
||||
return KEY_ENTER;
|
||||
}
|
||||
|
||||
if (code == (u64)8U || code == (u64)127U) {
|
||||
return KEY_BACKSPACE;
|
||||
}
|
||||
|
||||
if (code == (u64)27U) {
|
||||
return KEY_ESCAPE;
|
||||
}
|
||||
|
||||
if (code == (u64)'\t') {
|
||||
return KEY_TAB;
|
||||
}
|
||||
|
||||
if (code >= 32ULL && code <= 126ULL) {
|
||||
return (unsigned char)(code & 0xFFULL);
|
||||
}
|
||||
|
||||
return 0U;
|
||||
}
|
||||
|
||||
static void dg_poll_keyboard(void) {
|
||||
for (;;) {
|
||||
u64 code = cleonos_sys_kbd_get_char();
|
||||
unsigned char key;
|
||||
|
||||
if (code == (u64)-1) {
|
||||
break;
|
||||
}
|
||||
|
||||
key = dg_translate_key(code);
|
||||
|
||||
if (key == 0U) {
|
||||
continue;
|
||||
}
|
||||
|
||||
dg_push_key(1, key);
|
||||
dg_push_key(0, key);
|
||||
}
|
||||
}
|
||||
|
||||
void DG_Init(void) {
|
||||
u64 sx;
|
||||
u64 sy;
|
||||
|
||||
g_key_r = 0ULL;
|
||||
g_key_w = 0ULL;
|
||||
|
||||
g_fb_info.width = 0ULL;
|
||||
g_fb_info.height = 0ULL;
|
||||
g_fb_info.pitch = 0ULL;
|
||||
g_fb_info.bpp = 0ULL;
|
||||
|
||||
if (cleonos_sys_fb_info(&g_fb_info) == 0ULL || g_fb_info.width == 0ULL || g_fb_info.height == 0ULL ||
|
||||
g_fb_info.bpp != 32ULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
sx = g_fb_info.width / (u64)DOOMGENERIC_RESX;
|
||||
sy = g_fb_info.height / (u64)DOOMGENERIC_RESY;
|
||||
g_scale = (sx < sy) ? sx : sy;
|
||||
|
||||
if (g_scale == 0ULL) {
|
||||
g_scale = 1ULL;
|
||||
}
|
||||
|
||||
if (g_scale > 4ULL) {
|
||||
g_scale = 4ULL;
|
||||
}
|
||||
|
||||
g_dst_x = (g_fb_info.width > ((u64)DOOMGENERIC_RESX * g_scale))
|
||||
? ((g_fb_info.width - ((u64)DOOMGENERIC_RESX * g_scale)) / 2ULL)
|
||||
: 0ULL;
|
||||
g_dst_y = (g_fb_info.height > ((u64)DOOMGENERIC_RESY * g_scale))
|
||||
? ((g_fb_info.height - ((u64)DOOMGENERIC_RESY * g_scale)) / 2ULL)
|
||||
: 0ULL;
|
||||
|
||||
g_blit_req.pixels_ptr = 0ULL;
|
||||
g_blit_req.src_width = (u64)DOOMGENERIC_RESX;
|
||||
g_blit_req.src_height = (u64)DOOMGENERIC_RESY;
|
||||
g_blit_req.src_pitch_bytes = (u64)DOOMGENERIC_RESX * 4ULL;
|
||||
g_blit_req.dst_x = g_dst_x;
|
||||
g_blit_req.dst_y = g_dst_y;
|
||||
g_blit_req.scale = g_scale;
|
||||
|
||||
(void)cleonos_sys_fb_clear(0x00000000ULL);
|
||||
}
|
||||
|
||||
void DG_DrawFrame(void) {
|
||||
dg_poll_keyboard();
|
||||
|
||||
if (g_fb_info.width == 0ULL || g_fb_info.height == 0ULL || DG_ScreenBuffer == (pixel_t *)0) {
|
||||
return;
|
||||
}
|
||||
|
||||
g_blit_req.pixels_ptr = (u64)(void *)DG_ScreenBuffer;
|
||||
(void)cleonos_sys_fb_blit(&g_blit_req);
|
||||
}
|
||||
|
||||
void DG_SleepMs(uint32_t ms) {
|
||||
u64 ticks = ((u64)ms + 9ULL) / 10ULL;
|
||||
|
||||
if (ticks == 0ULL && ms != 0U) {
|
||||
ticks = 1ULL;
|
||||
}
|
||||
|
||||
if (ticks > 0ULL) {
|
||||
(void)cleonos_sys_sleep_ticks(ticks);
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t DG_GetTicksMs(void) {
|
||||
return (uint32_t)(cleonos_sys_timer_ticks() * 10ULL);
|
||||
}
|
||||
|
||||
int DG_GetKey(int *pressed, unsigned char *key) {
|
||||
dg_poll_keyboard();
|
||||
return dg_pop_key(pressed, key);
|
||||
}
|
||||
|
||||
void DG_SetWindowTitle(const char *title) {
|
||||
(void)title;
|
||||
}
|
||||
|
||||
int cl_doom_run_main(int argc, char **argv) {
|
||||
doomgeneric_Create(argc, argv);
|
||||
|
||||
for (;;) {
|
||||
doomgeneric_Tick();
|
||||
}
|
||||
}
|
||||
81
cleonos/c/apps/doom_main.c
Normal file
81
cleonos/c/apps/doom_main.c
Normal file
@@ -0,0 +1,81 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <cleonos_syscall.h>
|
||||
|
||||
int cl_doom_run_main(int argc, char **argv);
|
||||
|
||||
static const char *cl_doom_pick_default_wad(void) {
|
||||
static const char *candidates[] = {
|
||||
"/doom1.wad", "/DOOM1.WAD", "/temp/doom1.wad", "/temp/DOOM1.WAD", "/shell/doom1.wad", "/shell/DOOM1.WAD",
|
||||
};
|
||||
u64 i;
|
||||
|
||||
for (i = 0ULL; i < (u64)(sizeof(candidates) / sizeof(candidates[0])); i++) {
|
||||
if (cleonos_sys_fs_stat_size(candidates[i]) != (u64)-1) {
|
||||
return candidates[i];
|
||||
}
|
||||
}
|
||||
|
||||
return (const char *)0;
|
||||
}
|
||||
|
||||
int cleonos_app_main(int argc, char **argv, char **envp) {
|
||||
char *run_argv[32];
|
||||
int run_argc = 0;
|
||||
int i;
|
||||
const char *auto_wad = (const char *)0;
|
||||
int has_iwad = 0;
|
||||
|
||||
(void)envp;
|
||||
|
||||
if (argc <= 0 || argv == (char **)0 || argv[0] == (char *)0) {
|
||||
(void)printf("doom: invalid argv\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (argv[i] != (char *)0 && strcmp(argv[i], "-iwad") == 0) {
|
||||
has_iwad = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
run_argv[run_argc++] = argv[0];
|
||||
|
||||
if (has_iwad == 0) {
|
||||
if (argc > 1 && argv[1] != (char *)0 && argv[1][0] != '-') {
|
||||
run_argv[run_argc++] = "-iwad";
|
||||
run_argv[run_argc++] = argv[1];
|
||||
for (i = 2; i < argc && run_argc + 1 < (int)(sizeof(run_argv) / sizeof(run_argv[0])); i++) {
|
||||
run_argv[run_argc++] = argv[i];
|
||||
}
|
||||
} else {
|
||||
auto_wad = cl_doom_pick_default_wad();
|
||||
if (auto_wad != (const char *)0) {
|
||||
run_argv[run_argc++] = "-iwad";
|
||||
run_argv[run_argc++] = (char *)auto_wad;
|
||||
}
|
||||
|
||||
for (i = 1; i < argc && run_argc + 1 < (int)(sizeof(run_argv) / sizeof(run_argv[0])); i++) {
|
||||
run_argv[run_argc++] = argv[i];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (i = 1; i < argc && run_argc + 1 < (int)(sizeof(run_argv) / sizeof(run_argv[0])); i++) {
|
||||
run_argv[run_argc++] = argv[i];
|
||||
}
|
||||
}
|
||||
|
||||
run_argv[run_argc] = (char *)0;
|
||||
|
||||
if (has_iwad == 0 && auto_wad == (const char *)0 && (argc <= 1 || argv[1] == (char *)0 || argv[1][0] == '-')) {
|
||||
(void)printf("doom: no WAD provided\n");
|
||||
(void)printf("doom: usage: doom /doom1.wad\n");
|
||||
(void)printf("doom: or: doom -iwad /doom1.wad\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
(void)printf("doom: launching doomgeneric\n");
|
||||
return cl_doom_run_main(run_argc, run_argv);
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "cmd_runtime.h"
|
||||
#include <cleonos_version.h>
|
||||
static u64 ush_fastfetch_u64_to_dec(char *out, u64 out_size, u64 value) {
|
||||
char rev[32];
|
||||
u64 digits = 0ULL;
|
||||
@@ -115,6 +116,7 @@ static int ush_cmd_fastfetch(const char *arg) {
|
||||
u64 tty_count;
|
||||
u64 exec_req;
|
||||
u64 exec_ok;
|
||||
char kernel_version[32];
|
||||
|
||||
if (arg != (const char *)0 && arg[0] != '\0') {
|
||||
if (ush_streq(arg, "--plain") != 0) {
|
||||
@@ -132,12 +134,17 @@ static int ush_cmd_fastfetch(const char *arg) {
|
||||
tty_count = cleonos_sys_tty_count();
|
||||
exec_req = cleonos_sys_exec_request_count();
|
||||
exec_ok = cleonos_sys_exec_success_count();
|
||||
if (cleonos_sys_kernel_version(kernel_version, (u64)sizeof(kernel_version)) == 0ULL) {
|
||||
ush_copy(kernel_version, (u64)sizeof(kernel_version), "unknown");
|
||||
}
|
||||
|
||||
ush_fastfetch_print_logo(plain);
|
||||
ush_write_char('\n');
|
||||
|
||||
ush_fastfetch_print_text(plain, "OS", "CLeonOS x86_64");
|
||||
ush_fastfetch_print_text(plain, "Shell", "User Shell (/shell/shell.elf)");
|
||||
ush_fastfetch_print_text(plain, "CLeonOSVersion", CLEONOS_VERSION_STRING);
|
||||
ush_fastfetch_print_text(plain, "CLKSVersion", kernel_version);
|
||||
ush_fastfetch_print_u64(plain, "PID", cleonos_sys_getpid());
|
||||
ush_fastfetch_print_u64(plain, "UptimeTicks", cleonos_sys_timer_ticks());
|
||||
ush_fastfetch_print_u64(plain, "Tasks", cleonos_sys_task_count());
|
||||
|
||||
@@ -13,8 +13,11 @@ static int ush_cmd_help(void) {
|
||||
ush_writeln(" exec|run <path|name> [args...]");
|
||||
ush_writeln(" clear");
|
||||
ush_writeln(" ansi / ansitest / color");
|
||||
ush_writeln(" bmpview <file.bmp> [cols]");
|
||||
ush_writeln(" qrcode [--ecc <L|M|Q|H>] <text>");
|
||||
ush_writeln(" wavplay <file.wav> [steps] [ticks] / wavplay --stop");
|
||||
ush_writeln(" fastfetch [--plain]");
|
||||
ush_writeln(" doom [wad_path] (framebuffer bootstrap renderer)");
|
||||
ush_writeln(" memstat / fsstat / taskstat / userstat / shstat / stats");
|
||||
ush_writeln(" tty [index]");
|
||||
ush_writeln(" dmesg [n]");
|
||||
|
||||
1030
cleonos/c/apps/qrcode/qrcodegen.c
Normal file
1030
cleonos/c/apps/qrcode/qrcodegen.c
Normal file
File diff suppressed because it is too large
Load Diff
363
cleonos/c/apps/qrcode/qrcodegen.h
Normal file
363
cleonos/c/apps/qrcode/qrcodegen.h
Normal file
@@ -0,0 +1,363 @@
|
||||
/*
|
||||
* QR Code generator library (C)
|
||||
*
|
||||
* Copyright (c) Project Nayuki. (MIT License)
|
||||
* https://www.nayuki.io/page/qr-code-generator-library
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
* the Software without restriction, including without limitation the rights to
|
||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
* the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
* - The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
* - The Software is provided "as is", without warranty of any kind, express or
|
||||
* implied, including but not limited to the warranties of merchantability,
|
||||
* fitness for a particular purpose and noninfringement. In no event shall the
|
||||
* authors or copyright holders be liable for any claim, damages or other
|
||||
* liability, whether in an action of contract, tort or otherwise, arising from,
|
||||
* out of or in connection with the Software or the use or other dealings in the
|
||||
* Software.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This library creates QR Code symbols, which is a type of two-dimension barcode.
|
||||
* Invented by Denso Wave and described in the ISO/IEC 18004 standard.
|
||||
* A QR Code structure is an immutable square grid of dark and light cells.
|
||||
* The library provides functions to create a QR Code from text or binary data.
|
||||
* The library covers the QR Code Model 2 specification, supporting all versions (sizes)
|
||||
* from 1 to 40, all 4 error correction levels, and 4 character encoding modes.
|
||||
*
|
||||
* Ways to create a QR Code object:
|
||||
* - High level: Take the payload data and call qrcodegen_encodeText() or qrcodegen_encodeBinary().
|
||||
* - Low level: Custom-make the list of segments and call
|
||||
* qrcodegen_encodeSegments() or qrcodegen_encodeSegmentsAdvanced().
|
||||
* (Note that all ways require supplying the desired error correction level and various byte buffers.)
|
||||
*/
|
||||
|
||||
/*---- Enum and struct types----*/
|
||||
|
||||
/*
|
||||
* The error correction level in a QR Code symbol.
|
||||
*/
|
||||
enum qrcodegen_Ecc {
|
||||
// Must be declared in ascending order of error protection
|
||||
// so that an internal qrcodegen function works properly
|
||||
qrcodegen_Ecc_LOW = 0, // The QR Code can tolerate about 7% erroneous codewords
|
||||
qrcodegen_Ecc_MEDIUM, // The QR Code can tolerate about 15% erroneous codewords
|
||||
qrcodegen_Ecc_QUARTILE, // The QR Code can tolerate about 25% erroneous codewords
|
||||
qrcodegen_Ecc_HIGH, // The QR Code can tolerate about 30% erroneous codewords
|
||||
};
|
||||
|
||||
/*
|
||||
* The mask pattern used in a QR Code symbol.
|
||||
*/
|
||||
enum qrcodegen_Mask {
|
||||
// A special value to tell the QR Code encoder to
|
||||
// automatically select an appropriate mask pattern
|
||||
qrcodegen_Mask_AUTO = -1,
|
||||
// The eight actual mask patterns
|
||||
qrcodegen_Mask_0 = 0,
|
||||
qrcodegen_Mask_1,
|
||||
qrcodegen_Mask_2,
|
||||
qrcodegen_Mask_3,
|
||||
qrcodegen_Mask_4,
|
||||
qrcodegen_Mask_5,
|
||||
qrcodegen_Mask_6,
|
||||
qrcodegen_Mask_7,
|
||||
};
|
||||
|
||||
/*
|
||||
* Describes how a segment's data bits are interpreted.
|
||||
*/
|
||||
enum qrcodegen_Mode {
|
||||
qrcodegen_Mode_NUMERIC = 0x1,
|
||||
qrcodegen_Mode_ALPHANUMERIC = 0x2,
|
||||
qrcodegen_Mode_BYTE = 0x4,
|
||||
qrcodegen_Mode_KANJI = 0x8,
|
||||
qrcodegen_Mode_ECI = 0x7,
|
||||
};
|
||||
|
||||
/*
|
||||
* A segment of character/binary/control data in a QR Code symbol.
|
||||
* The mid-level way to create a segment is to take the payload data
|
||||
* and call a factory function such as qrcodegen_makeNumeric().
|
||||
* The low-level way to create a segment is to custom-make the bit buffer
|
||||
* and initialize a qrcodegen_Segment struct with appropriate values.
|
||||
* Even in the most favorable conditions, a QR Code can only hold 7089 characters of data.
|
||||
* Any segment longer than this is meaningless for the purpose of generating QR Codes.
|
||||
* Moreover, the maximum allowed bit length is 32767 because
|
||||
* the largest QR Code (version 40) has 31329 modules.
|
||||
*/
|
||||
struct qrcodegen_Segment {
|
||||
// The mode indicator of this segment.
|
||||
enum qrcodegen_Mode mode;
|
||||
|
||||
// The length of this segment's unencoded data. Measured in characters for
|
||||
// numeric/alphanumeric/kanji mode, bytes for byte mode, and 0 for ECI mode.
|
||||
// Always zero or positive. Not the same as the data's bit length.
|
||||
int numChars;
|
||||
|
||||
// The data bits of this segment, packed in bitwise big endian.
|
||||
// Can be null if the bit length is zero.
|
||||
uint8_t *data;
|
||||
|
||||
// The number of valid data bits used in the buffer. Requires
|
||||
// 0 <= bitLength <= 32767, and bitLength <= (capacity of data array) * 8.
|
||||
// The character count (numChars) must agree with the mode and the bit buffer length.
|
||||
int bitLength;
|
||||
};
|
||||
|
||||
/*---- Macro constants and functions ----*/
|
||||
|
||||
#define qrcodegen_VERSION_MIN 1 // The minimum version number supported in the QR Code Model 2 standard
|
||||
#define qrcodegen_VERSION_MAX 40 // The maximum version number supported in the QR Code Model 2 standard
|
||||
|
||||
// Calculates the number of bytes needed to store any QR Code up to and including the given version number,
|
||||
// as a compile-time constant. For example, 'uint8_t buffer[qrcodegen_BUFFER_LEN_FOR_VERSION(25)];'
|
||||
// can store any single QR Code from version 1 to 25 (inclusive). The result fits in an int (or int16).
|
||||
// Requires qrcodegen_VERSION_MIN <= n <= qrcodegen_VERSION_MAX.
|
||||
#define qrcodegen_BUFFER_LEN_FOR_VERSION(n) ((((n) * 4 + 17) * ((n) * 4 + 17) + 7) / 8 + 1)
|
||||
|
||||
// The worst-case number of bytes needed to store one QR Code, up to and including
|
||||
// version 40. This value equals 3918, which is just under 4 kilobytes.
|
||||
// Use this more convenient value to avoid calculating tighter memory bounds for buffers.
|
||||
#define qrcodegen_BUFFER_LEN_MAX qrcodegen_BUFFER_LEN_FOR_VERSION(qrcodegen_VERSION_MAX)
|
||||
|
||||
/*---- Functions (high level) to generate QR Codes ----*/
|
||||
|
||||
/*
|
||||
* Encodes the given text string to a QR Code, returning true if successful.
|
||||
* If the data is too long to fit in any version in the given range
|
||||
* at the given ECC level, then false is returned.
|
||||
*
|
||||
* The input text must be encoded in UTF-8 and contain no NULs.
|
||||
* Requires 1 <= minVersion <= maxVersion <= 40.
|
||||
*
|
||||
* The smallest possible QR Code version within the given range is automatically
|
||||
* chosen for the output. Iff boostEcl is true, then the ECC level of the result
|
||||
* may be higher than the ecl argument if it can be done without increasing the
|
||||
* version. The mask is either between qrcodegen_Mask_0 to 7 to force that mask, or
|
||||
* qrcodegen_Mask_AUTO to automatically choose an appropriate mask (which may be slow).
|
||||
*
|
||||
* About the arrays, letting len = qrcodegen_BUFFER_LEN_FOR_VERSION(maxVersion):
|
||||
* - Before calling the function:
|
||||
* - The array ranges tempBuffer[0 : len] and qrcode[0 : len] must allow
|
||||
* reading and writing; hence each array must have a length of at least len.
|
||||
* - The two ranges must not overlap (aliasing).
|
||||
* - The initial state of both ranges can be uninitialized
|
||||
* because the function always writes before reading.
|
||||
* - After the function returns:
|
||||
* - Both ranges have no guarantee on which elements are initialized and what values are stored.
|
||||
* - tempBuffer contains no useful data and should be treated as entirely uninitialized.
|
||||
* - If successful, qrcode can be passed into qrcodegen_getSize() and qrcodegen_getModule().
|
||||
*
|
||||
* If successful, the resulting QR Code may use numeric,
|
||||
* alphanumeric, or byte mode to encode the text.
|
||||
*
|
||||
* In the most optimistic case, a QR Code at version 40 with low ECC
|
||||
* can hold any UTF-8 string up to 2953 bytes, or any alphanumeric string
|
||||
* up to 4296 characters, or any digit string up to 7089 characters.
|
||||
* These numbers represent the hard upper limit of the QR Code standard.
|
||||
*
|
||||
* Please consult the QR Code specification for information on
|
||||
* data capacities per version, ECC level, and text encoding mode.
|
||||
*/
|
||||
bool qrcodegen_encodeText(const char *text, uint8_t tempBuffer[], uint8_t qrcode[], enum qrcodegen_Ecc ecl,
|
||||
int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl);
|
||||
|
||||
/*
|
||||
* Encodes the given binary data to a QR Code, returning true if successful.
|
||||
* If the data is too long to fit in any version in the given range
|
||||
* at the given ECC level, then false is returned.
|
||||
*
|
||||
* Requires 1 <= minVersion <= maxVersion <= 40.
|
||||
*
|
||||
* The smallest possible QR Code version within the given range is automatically
|
||||
* chosen for the output. Iff boostEcl is true, then the ECC level of the result
|
||||
* may be higher than the ecl argument if it can be done without increasing the
|
||||
* version. The mask is either between qrcodegen_Mask_0 to 7 to force that mask, or
|
||||
* qrcodegen_Mask_AUTO to automatically choose an appropriate mask (which may be slow).
|
||||
*
|
||||
* About the arrays, letting len = qrcodegen_BUFFER_LEN_FOR_VERSION(maxVersion):
|
||||
* - Before calling the function:
|
||||
* - The array ranges dataAndTemp[0 : len] and qrcode[0 : len] must allow
|
||||
* reading and writing; hence each array must have a length of at least len.
|
||||
* - The two ranges must not overlap (aliasing).
|
||||
* - The input array range dataAndTemp[0 : dataLen] should normally be
|
||||
* valid UTF-8 text, but is not required by the QR Code standard.
|
||||
* - The initial state of dataAndTemp[dataLen : len] and qrcode[0 : len]
|
||||
* can be uninitialized because the function always writes before reading.
|
||||
* - After the function returns:
|
||||
* - Both ranges have no guarantee on which elements are initialized and what values are stored.
|
||||
* - dataAndTemp contains no useful data and should be treated as entirely uninitialized.
|
||||
* - If successful, qrcode can be passed into qrcodegen_getSize() and qrcodegen_getModule().
|
||||
*
|
||||
* If successful, the resulting QR Code will use byte mode to encode the data.
|
||||
*
|
||||
* In the most optimistic case, a QR Code at version 40 with low ECC can hold any byte
|
||||
* sequence up to length 2953. This is the hard upper limit of the QR Code standard.
|
||||
*
|
||||
* Please consult the QR Code specification for information on
|
||||
* data capacities per version, ECC level, and text encoding mode.
|
||||
*/
|
||||
bool qrcodegen_encodeBinary(uint8_t dataAndTemp[], size_t dataLen, uint8_t qrcode[], enum qrcodegen_Ecc ecl,
|
||||
int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl);
|
||||
|
||||
/*---- Functions (low level) to generate QR Codes ----*/
|
||||
|
||||
/*
|
||||
* Encodes the given segments to a QR Code, returning true if successful.
|
||||
* If the data is too long to fit in any version at the given ECC level,
|
||||
* then false is returned.
|
||||
*
|
||||
* The smallest possible QR Code version is automatically chosen for
|
||||
* the output. The ECC level of the result may be higher than the
|
||||
* ecl argument if it can be done without increasing the version.
|
||||
*
|
||||
* About the byte arrays, letting len = qrcodegen_BUFFER_LEN_FOR_VERSION(qrcodegen_VERSION_MAX):
|
||||
* - Before calling the function:
|
||||
* - The array ranges tempBuffer[0 : len] and qrcode[0 : len] must allow
|
||||
* reading and writing; hence each array must have a length of at least len.
|
||||
* - The two ranges must not overlap (aliasing).
|
||||
* - The initial state of both ranges can be uninitialized
|
||||
* because the function always writes before reading.
|
||||
* - The input array segs can contain segments whose data buffers overlap with tempBuffer.
|
||||
* - After the function returns:
|
||||
* - Both ranges have no guarantee on which elements are initialized and what values are stored.
|
||||
* - tempBuffer contains no useful data and should be treated as entirely uninitialized.
|
||||
* - Any segment whose data buffer overlaps with tempBuffer[0 : len]
|
||||
* must be treated as having invalid values in that array.
|
||||
* - If successful, qrcode can be passed into qrcodegen_getSize() and qrcodegen_getModule().
|
||||
*
|
||||
* Please consult the QR Code specification for information on
|
||||
* data capacities per version, ECC level, and text encoding mode.
|
||||
*
|
||||
* This function allows the user to create a custom sequence of segments that switches
|
||||
* between modes (such as alphanumeric and byte) to encode text in less space.
|
||||
* This is a low-level API; the high-level API is qrcodegen_encodeText() and qrcodegen_encodeBinary().
|
||||
*/
|
||||
bool qrcodegen_encodeSegments(const struct qrcodegen_Segment segs[], size_t len, enum qrcodegen_Ecc ecl,
|
||||
uint8_t tempBuffer[], uint8_t qrcode[]);
|
||||
|
||||
/*
|
||||
* Encodes the given segments to a QR Code, returning true if successful.
|
||||
* If the data is too long to fit in any version in the given range
|
||||
* at the given ECC level, then false is returned.
|
||||
*
|
||||
* Requires 1 <= minVersion <= maxVersion <= 40.
|
||||
*
|
||||
* The smallest possible QR Code version within the given range is automatically
|
||||
* chosen for the output. Iff boostEcl is true, then the ECC level of the result
|
||||
* may be higher than the ecl argument if it can be done without increasing the
|
||||
* version. The mask is either between qrcodegen_Mask_0 to 7 to force that mask, or
|
||||
* qrcodegen_Mask_AUTO to automatically choose an appropriate mask (which may be slow).
|
||||
*
|
||||
* About the byte arrays, letting len = qrcodegen_BUFFER_LEN_FOR_VERSION(qrcodegen_VERSION_MAX):
|
||||
* - Before calling the function:
|
||||
* - The array ranges tempBuffer[0 : len] and qrcode[0 : len] must allow
|
||||
* reading and writing; hence each array must have a length of at least len.
|
||||
* - The two ranges must not overlap (aliasing).
|
||||
* - The initial state of both ranges can be uninitialized
|
||||
* because the function always writes before reading.
|
||||
* - The input array segs can contain segments whose data buffers overlap with tempBuffer.
|
||||
* - After the function returns:
|
||||
* - Both ranges have no guarantee on which elements are initialized and what values are stored.
|
||||
* - tempBuffer contains no useful data and should be treated as entirely uninitialized.
|
||||
* - Any segment whose data buffer overlaps with tempBuffer[0 : len]
|
||||
* must be treated as having invalid values in that array.
|
||||
* - If successful, qrcode can be passed into qrcodegen_getSize() and qrcodegen_getModule().
|
||||
*
|
||||
* Please consult the QR Code specification for information on
|
||||
* data capacities per version, ECC level, and text encoding mode.
|
||||
*
|
||||
* This function allows the user to create a custom sequence of segments that switches
|
||||
* between modes (such as alphanumeric and byte) to encode text in less space.
|
||||
* This is a low-level API; the high-level API is qrcodegen_encodeText() and qrcodegen_encodeBinary().
|
||||
*/
|
||||
bool qrcodegen_encodeSegmentsAdvanced(const struct qrcodegen_Segment segs[], size_t len, enum qrcodegen_Ecc ecl,
|
||||
int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl,
|
||||
uint8_t tempBuffer[], uint8_t qrcode[]);
|
||||
|
||||
/*
|
||||
* Tests whether the given string can be encoded as a segment in numeric mode.
|
||||
* A string is encodable iff each character is in the range 0 to 9.
|
||||
*/
|
||||
bool qrcodegen_isNumeric(const char *text);
|
||||
|
||||
/*
|
||||
* Tests whether the given string can be encoded as a segment in alphanumeric mode.
|
||||
* A string is encodable iff each character is in the following set: 0 to 9, A to Z
|
||||
* (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon.
|
||||
*/
|
||||
bool qrcodegen_isAlphanumeric(const char *text);
|
||||
|
||||
/*
|
||||
* Returns the number of bytes (uint8_t) needed for the data buffer of a segment
|
||||
* containing the given number of characters using the given mode. Notes:
|
||||
* - Returns SIZE_MAX on failure, i.e. numChars > INT16_MAX or the internal
|
||||
* calculation of the number of needed bits exceeds INT16_MAX (i.e. 32767).
|
||||
* - Otherwise, all valid results are in the range [0, ceil(INT16_MAX / 8)], i.e. at most 4096.
|
||||
* - It is okay for the user to allocate more bytes for the buffer than needed.
|
||||
* - For byte mode, numChars measures the number of bytes, not Unicode code points.
|
||||
* - For ECI mode, numChars must be 0, and the worst-case number of bytes is returned.
|
||||
* An actual ECI segment can have shorter data. For non-ECI modes, the result is exact.
|
||||
*/
|
||||
size_t qrcodegen_calcSegmentBufferSize(enum qrcodegen_Mode mode, size_t numChars);
|
||||
|
||||
/*
|
||||
* Returns a segment representing the given binary data encoded in
|
||||
* byte mode. All input byte arrays are acceptable. Any text string
|
||||
* can be converted to UTF-8 bytes and encoded as a byte mode segment.
|
||||
*/
|
||||
struct qrcodegen_Segment qrcodegen_makeBytes(const uint8_t data[], size_t len, uint8_t buf[]);
|
||||
|
||||
/*
|
||||
* Returns a segment representing the given string of decimal digits encoded in numeric mode.
|
||||
*/
|
||||
struct qrcodegen_Segment qrcodegen_makeNumeric(const char *digits, uint8_t buf[]);
|
||||
|
||||
/*
|
||||
* Returns a segment representing the given text string encoded in alphanumeric mode.
|
||||
* The characters allowed are: 0 to 9, A to Z (uppercase only), space,
|
||||
* dollar, percent, asterisk, plus, hyphen, period, slash, colon.
|
||||
*/
|
||||
struct qrcodegen_Segment qrcodegen_makeAlphanumeric(const char *text, uint8_t buf[]);
|
||||
|
||||
/*
|
||||
* Returns a segment representing an Extended Channel Interpretation
|
||||
* (ECI) designator with the given assignment value.
|
||||
*/
|
||||
struct qrcodegen_Segment qrcodegen_makeEci(long assignVal, uint8_t buf[]);
|
||||
|
||||
/*---- Functions to extract raw data from QR Codes ----*/
|
||||
|
||||
/*
|
||||
* Returns the side length of the given QR Code, assuming that encoding succeeded.
|
||||
* The result is in the range [21, 177]. Note that the length of the array buffer
|
||||
* is related to the side length - every 'uint8_t qrcode[]' must have length at least
|
||||
* qrcodegen_BUFFER_LEN_FOR_VERSION(version), which equals ceil(size^2 / 8 + 1).
|
||||
*/
|
||||
int qrcodegen_getSize(const uint8_t qrcode[]);
|
||||
|
||||
/*
|
||||
* Returns the color of the module (pixel) at the given coordinates, which is false
|
||||
* for light or true for dark. The top left corner has the coordinates (x=0, y=0).
|
||||
* If the given coordinates are out of bounds, then false (light) is returned.
|
||||
*/
|
||||
bool qrcodegen_getModule(const uint8_t qrcode[], int x, int y);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
383
cleonos/c/apps/qrcode_main.c
Normal file
383
cleonos/c/apps/qrcode_main.c
Normal file
@@ -0,0 +1,383 @@
|
||||
#include "cmd_runtime.h"
|
||||
#include "qrcode/qrcodegen.h"
|
||||
|
||||
#define USH_QRCODE_MAX_TEXT 640U
|
||||
#define USH_QRCODE_MAX_VERSION 15
|
||||
#define USH_QRCODE_BORDER 4U
|
||||
#define USH_QRCODE_MAX_MODULES ((USH_QRCODE_MAX_VERSION * 4U) + 17U + (USH_QRCODE_BORDER * 2U))
|
||||
#define USH_QRCODE_CANVAS_MAX 1024U
|
||||
|
||||
#define USH_QRCODE_COLOR_DARK 0x00000000ULL
|
||||
#define USH_QRCODE_COLOR_LIGHT 0x00FFFFFFULL
|
||||
|
||||
static unsigned int ush_qrcode_canvas[USH_QRCODE_CANVAS_MAX][USH_QRCODE_CANVAS_MAX];
|
||||
|
||||
static int ush_qrcode_streq_ignore_case(const char *left, const char *right) {
|
||||
u64 i = 0ULL;
|
||||
|
||||
if (left == (const char *)0 || right == (const char *)0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
while (left[i] != '\0' && right[i] != '\0') {
|
||||
char lc = left[i];
|
||||
char rc = right[i];
|
||||
|
||||
if (lc >= 'a' && lc <= 'z') {
|
||||
lc = (char)(lc - ('a' - 'A'));
|
||||
}
|
||||
|
||||
if (rc >= 'a' && rc <= 'z') {
|
||||
rc = (char)(rc - ('a' - 'A'));
|
||||
}
|
||||
|
||||
if (lc != rc) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
return (left[i] == '\0' && right[i] == '\0') ? 1 : 0;
|
||||
}
|
||||
|
||||
static int ush_qrcode_parse_ecc(const char *text, enum qrcodegen_Ecc *out_ecc) {
|
||||
if (text == (const char *)0 || out_ecc == (enum qrcodegen_Ecc *)0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ush_qrcode_streq_ignore_case(text, "L") != 0 || ush_qrcode_streq_ignore_case(text, "LOW") != 0) {
|
||||
*out_ecc = qrcodegen_Ecc_LOW;
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (ush_qrcode_streq_ignore_case(text, "M") != 0 || ush_qrcode_streq_ignore_case(text, "MEDIUM") != 0) {
|
||||
*out_ecc = qrcodegen_Ecc_MEDIUM;
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (ush_qrcode_streq_ignore_case(text, "Q") != 0 || ush_qrcode_streq_ignore_case(text, "QUARTILE") != 0) {
|
||||
*out_ecc = qrcodegen_Ecc_QUARTILE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (ush_qrcode_streq_ignore_case(text, "H") != 0 || ush_qrcode_streq_ignore_case(text, "HIGH") != 0) {
|
||||
*out_ecc = qrcodegen_Ecc_HIGH;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ush_qrcode_usage(void) {
|
||||
ush_writeln("usage: qrcode [--ecc <L|M|Q|H>] <text>");
|
||||
ush_writeln(" qrcode --help");
|
||||
ush_writeln("note: pipeline input supported when <text> omitted");
|
||||
}
|
||||
|
||||
/* return: 0 fail, 1 ok, 2 help */
|
||||
static int ush_qrcode_parse_args(const char *arg, char *out_text, u64 out_text_size, enum qrcodegen_Ecc *out_ecc) {
|
||||
char first[USH_PATH_MAX];
|
||||
char second[USH_PATH_MAX];
|
||||
const char *rest = "";
|
||||
const char *rest2 = "";
|
||||
|
||||
if (out_text == (char *)0 || out_text_size == 0ULL || out_ecc == (enum qrcodegen_Ecc *)0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
*out_ecc = qrcodegen_Ecc_LOW;
|
||||
out_text[0] = '\0';
|
||||
|
||||
if (arg == (const char *)0 || arg[0] == '\0') {
|
||||
if (ush_pipeline_stdin_text != (const char *)0 && ush_pipeline_stdin_text[0] != '\0') {
|
||||
if (ush_pipeline_stdin_len + 1ULL > out_text_size) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
ush_copy(out_text, out_text_size, ush_pipeline_stdin_text);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ush_split_first_and_rest(arg, first, (u64)sizeof(first), &rest) == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ush_streq(first, "--help") != 0 || ush_streq(first, "-h") != 0) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
if (ush_streq(first, "--ecc") != 0) {
|
||||
if (ush_split_first_and_rest(rest, second, (u64)sizeof(second), &rest2) == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ush_qrcode_parse_ecc(second, out_ecc) == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (rest2 == (const char *)0 || rest2[0] == '\0') {
|
||||
if (ush_pipeline_stdin_text != (const char *)0 && ush_pipeline_stdin_text[0] != '\0') {
|
||||
if (ush_pipeline_stdin_len + 1ULL > out_text_size) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
ush_copy(out_text, out_text_size, ush_pipeline_stdin_text);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
ush_copy(out_text, out_text_size, rest2);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (first[0] == '-' && first[1] == '-') {
|
||||
const char *prefix = "--ecc=";
|
||||
u64 i = 0ULL;
|
||||
int match = 1;
|
||||
|
||||
while (prefix[i] != '\0') {
|
||||
if (first[i] != prefix[i]) {
|
||||
match = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
if (match != 0) {
|
||||
if (first[i] == '\0') {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ush_qrcode_parse_ecc(&first[i], out_ecc) == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (rest == (const char *)0 || rest[0] == '\0') {
|
||||
if (ush_pipeline_stdin_text != (const char *)0 && ush_pipeline_stdin_text[0] != '\0') {
|
||||
if (ush_pipeline_stdin_len + 1ULL > out_text_size) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
ush_copy(out_text, out_text_size, ush_pipeline_stdin_text);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
ush_copy(out_text, out_text_size, rest);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
ush_copy(out_text, out_text_size, arg);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void ush_qrcode_emit_ascii(const uint8_t qrcode[]) {
|
||||
int size = qrcodegen_getSize(qrcode);
|
||||
int border = (int)USH_QRCODE_BORDER;
|
||||
int limit;
|
||||
int y;
|
||||
int x;
|
||||
|
||||
limit = size + border;
|
||||
|
||||
for (y = -border; y < limit; y++) {
|
||||
for (x = -border; x < limit; x++) {
|
||||
int dark = (x >= 0 && y >= 0 && x < size && y < size && qrcodegen_getModule(qrcode, x, y)) ? 1 : 0;
|
||||
ush_write(dark != 0 ? "##" : " ");
|
||||
}
|
||||
|
||||
ush_write_char('\n');
|
||||
}
|
||||
}
|
||||
|
||||
static int ush_qrcode_build_canvas(const uint8_t qrcode[], u64 module_pixels, u64 *out_side_pixels) {
|
||||
int qr_size = qrcodegen_getSize(qrcode);
|
||||
u64 side_modules;
|
||||
u64 side_pixels;
|
||||
u64 y;
|
||||
u64 x;
|
||||
|
||||
if (out_side_pixels == (u64 *)0 || module_pixels == 0ULL || qr_size <= 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
side_modules = (u64)qr_size + (u64)(USH_QRCODE_BORDER * 2U);
|
||||
if (side_modules == 0ULL || side_modules > (u64)USH_QRCODE_MAX_MODULES) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
side_pixels = side_modules * module_pixels;
|
||||
if (side_pixels == 0ULL || side_pixels > (u64)USH_QRCODE_CANVAS_MAX) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (y = 0ULL; y < side_pixels; y++) {
|
||||
for (x = 0ULL; x < side_pixels; x++) {
|
||||
int qx = (int)(x / module_pixels) - (int)USH_QRCODE_BORDER;
|
||||
int qy = (int)(y / module_pixels) - (int)USH_QRCODE_BORDER;
|
||||
int dark =
|
||||
(qx >= 0 && qy >= 0 && qx < qr_size && qy < qr_size && qrcodegen_getModule(qrcode, qx, qy)) ? 1 : 0;
|
||||
ush_qrcode_canvas[y][x] =
|
||||
(dark != 0) ? (unsigned int)USH_QRCODE_COLOR_DARK : (unsigned int)USH_QRCODE_COLOR_LIGHT;
|
||||
}
|
||||
}
|
||||
|
||||
*out_side_pixels = side_pixels;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int ush_qrcode_emit_pixels(const uint8_t qrcode[]) {
|
||||
int qr_size = qrcodegen_getSize(qrcode);
|
||||
u64 side_modules;
|
||||
cleonos_fb_info fb_info;
|
||||
cleonos_fb_blit_req req;
|
||||
u64 module_pixels_x;
|
||||
u64 module_pixels_y;
|
||||
u64 module_pixels;
|
||||
u64 module_pixels_canvas_cap;
|
||||
u64 side_pixels = 0ULL;
|
||||
u64 draw_w;
|
||||
u64 draw_h;
|
||||
|
||||
if (qr_size <= 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
side_modules = (u64)qr_size + (u64)(USH_QRCODE_BORDER * 2U);
|
||||
if (side_modules == 0ULL || side_modules > (u64)USH_QRCODE_MAX_MODULES) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
ush_zero(&fb_info, (u64)sizeof(fb_info));
|
||||
if (cleonos_sys_fb_info(&fb_info) == 0ULL || fb_info.width == 0ULL || fb_info.height == 0ULL ||
|
||||
fb_info.bpp != 32ULL) {
|
||||
ush_writeln("qrcode: framebuffer unavailable, fallback to ascii");
|
||||
ush_qrcode_emit_ascii(qrcode);
|
||||
return 1;
|
||||
}
|
||||
|
||||
module_pixels_x = fb_info.width / side_modules;
|
||||
module_pixels_y = fb_info.height / side_modules;
|
||||
module_pixels = (module_pixels_x < module_pixels_y) ? module_pixels_x : module_pixels_y;
|
||||
|
||||
if (module_pixels == 0ULL) {
|
||||
ush_writeln("qrcode: framebuffer too small");
|
||||
return 0;
|
||||
}
|
||||
|
||||
module_pixels_canvas_cap = (u64)USH_QRCODE_CANVAS_MAX / side_modules;
|
||||
if (module_pixels_canvas_cap == 0ULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (module_pixels > module_pixels_canvas_cap) {
|
||||
module_pixels = module_pixels_canvas_cap;
|
||||
}
|
||||
|
||||
if (ush_qrcode_build_canvas(qrcode, module_pixels, &side_pixels) == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
draw_w = side_pixels;
|
||||
draw_h = side_pixels;
|
||||
|
||||
req.pixels_ptr = (u64)(void *)&ush_qrcode_canvas[0][0];
|
||||
req.src_width = side_pixels;
|
||||
req.src_height = side_pixels;
|
||||
req.src_pitch_bytes = (u64)USH_QRCODE_CANVAS_MAX * 4ULL;
|
||||
req.dst_x = (fb_info.width > draw_w) ? ((fb_info.width - draw_w) / 2ULL) : 0ULL;
|
||||
req.dst_y = (fb_info.height > draw_h) ? ((fb_info.height - draw_h) / 2ULL) : 0ULL;
|
||||
req.scale = 1ULL;
|
||||
|
||||
(void)cleonos_sys_fb_clear(USH_QRCODE_COLOR_LIGHT);
|
||||
if (cleonos_sys_fb_blit(&req) == 0ULL) {
|
||||
ush_writeln("qrcode: framebuffer blit failed");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int ush_cmd_qrcode(const char *arg) {
|
||||
char text[USH_QRCODE_MAX_TEXT];
|
||||
enum qrcodegen_Ecc ecc;
|
||||
uint8_t qrcode[qrcodegen_BUFFER_LEN_FOR_VERSION(USH_QRCODE_MAX_VERSION)];
|
||||
uint8_t temp[qrcodegen_BUFFER_LEN_FOR_VERSION(USH_QRCODE_MAX_VERSION)];
|
||||
int parse_ret;
|
||||
int ok;
|
||||
|
||||
parse_ret = ush_qrcode_parse_args(arg, text, (u64)sizeof(text), &ecc);
|
||||
if (parse_ret == 2) {
|
||||
ush_qrcode_usage();
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (parse_ret == 0 || text[0] == '\0') {
|
||||
ush_qrcode_usage();
|
||||
return 0;
|
||||
}
|
||||
|
||||
ok = qrcodegen_encodeText(text, temp, qrcode, ecc, qrcodegen_VERSION_MIN, USH_QRCODE_MAX_VERSION,
|
||||
qrcodegen_Mask_AUTO, true);
|
||||
|
||||
if (ok == 0) {
|
||||
ush_writeln("qrcode: encode failed (input too long or invalid)");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return ush_qrcode_emit_pixels(qrcode);
|
||||
}
|
||||
|
||||
int cleonos_app_main(void) {
|
||||
ush_cmd_ctx ctx;
|
||||
ush_cmd_ret ret;
|
||||
ush_state sh;
|
||||
char initial_cwd[USH_PATH_MAX];
|
||||
int has_context = 0;
|
||||
int success = 0;
|
||||
const char *arg = "";
|
||||
|
||||
ush_zero(&ctx, (u64)sizeof(ctx));
|
||||
ush_zero(&ret, (u64)sizeof(ret));
|
||||
ush_init_state(&sh);
|
||||
ush_copy(initial_cwd, (u64)sizeof(initial_cwd), sh.cwd);
|
||||
|
||||
if (ush_command_ctx_read(&ctx) != 0) {
|
||||
if (ctx.cmd[0] != '\0' && ush_streq(ctx.cmd, "qrcode") != 0) {
|
||||
has_context = 1;
|
||||
arg = ctx.arg;
|
||||
if (ctx.cwd[0] == '/') {
|
||||
ush_copy(sh.cwd, (u64)sizeof(sh.cwd), ctx.cwd);
|
||||
ush_copy(initial_cwd, (u64)sizeof(initial_cwd), sh.cwd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
success = ush_cmd_qrcode(arg);
|
||||
|
||||
if (has_context != 0) {
|
||||
if (ush_streq(sh.cwd, initial_cwd) == 0) {
|
||||
ret.flags |= USH_CMD_RET_FLAG_CWD;
|
||||
ush_copy(ret.cwd, (u64)sizeof(ret.cwd), sh.cwd);
|
||||
}
|
||||
|
||||
if (sh.exit_requested != 0) {
|
||||
ret.flags |= USH_CMD_RET_FLAG_EXIT;
|
||||
ret.exit_code = sh.exit_code;
|
||||
}
|
||||
|
||||
(void)ush_command_ret_write(&ret);
|
||||
}
|
||||
|
||||
return (success != 0) ? 0 : 1;
|
||||
}
|
||||
@@ -135,8 +135,11 @@ static int ush_cmd_help(void) {
|
||||
ush_writeln(" exec|run <path|name> [args...]");
|
||||
ush_writeln(" clear");
|
||||
ush_writeln(" ansi / ansitest / color");
|
||||
ush_writeln(" bmpview <file.bmp> [cols]");
|
||||
ush_writeln(" qrcode [--ecc <L|M|Q|H>] <text>");
|
||||
ush_writeln(" wavplay <file.wav> [steps] [ticks] / wavplay --stop");
|
||||
ush_writeln(" fastfetch [--plain]");
|
||||
ush_writeln(" doom [wad_path] (framebuffer bootstrap renderer)");
|
||||
ush_writeln(" memstat / fsstat / taskstat / userstat / shstat / stats");
|
||||
ush_writeln(" tty [index]");
|
||||
ush_writeln(" dmesg [n]");
|
||||
|
||||
@@ -43,6 +43,23 @@ typedef struct cleonos_proc_snapshot {
|
||||
char path[CLEONOS_PROC_PATH_MAX];
|
||||
} cleonos_proc_snapshot;
|
||||
|
||||
typedef struct cleonos_fb_info {
|
||||
u64 width;
|
||||
u64 height;
|
||||
u64 pitch;
|
||||
u64 bpp;
|
||||
} cleonos_fb_info;
|
||||
|
||||
typedef struct cleonos_fb_blit_req {
|
||||
u64 pixels_ptr;
|
||||
u64 src_width;
|
||||
u64 src_height;
|
||||
u64 src_pitch_bytes;
|
||||
u64 dst_x;
|
||||
u64 dst_y;
|
||||
u64 scale;
|
||||
} cleonos_fb_blit_req;
|
||||
|
||||
#define CLEONOS_SYSCALL_LOG_WRITE 0ULL
|
||||
#define CLEONOS_SYSCALL_TIMER_TICKS 1ULL
|
||||
#define CLEONOS_SYSCALL_TASK_COUNT 2ULL
|
||||
@@ -124,6 +141,10 @@ typedef struct cleonos_proc_snapshot {
|
||||
#define CLEONOS_SYSCALL_DL_CLOSE 78ULL
|
||||
#define CLEONOS_SYSCALL_DL_SYM 79ULL
|
||||
#define CLEONOS_SYSCALL_EXEC_PATHV_IO 80ULL
|
||||
#define CLEONOS_SYSCALL_FB_INFO 81ULL
|
||||
#define CLEONOS_SYSCALL_FB_BLIT 82ULL
|
||||
#define CLEONOS_SYSCALL_FB_CLEAR 83ULL
|
||||
#define CLEONOS_SYSCALL_KERNEL_VERSION 84ULL
|
||||
|
||||
u64 cleonos_syscall(u64 id, u64 arg0, u64 arg1, u64 arg2);
|
||||
u64 cleonos_sys_log_write(const char *message, u64 length);
|
||||
@@ -207,5 +228,9 @@ u64 cleonos_sys_fd_dup(u64 fd);
|
||||
u64 cleonos_sys_dl_open(const char *path);
|
||||
u64 cleonos_sys_dl_close(u64 handle);
|
||||
u64 cleonos_sys_dl_sym(u64 handle, const char *symbol);
|
||||
u64 cleonos_sys_fb_info(cleonos_fb_info *out_info);
|
||||
u64 cleonos_sys_fb_blit(const cleonos_fb_blit_req *req);
|
||||
u64 cleonos_sys_fb_clear(u64 rgb);
|
||||
u64 cleonos_sys_kernel_version(char *out_version, u64 out_size);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -196,6 +196,42 @@ static clio_size_t clio_i64_to_dec(long long value, char *out, clio_size_t out_s
|
||||
return offset + len;
|
||||
}
|
||||
|
||||
static int clio_is_digit(char ch) {
|
||||
return (ch >= '0' && ch <= '9') ? 1 : 0;
|
||||
}
|
||||
|
||||
static int clio_emit_repeat(struct clio_sink *sink, char ch, clio_size_t count) {
|
||||
while (count > 0UL) {
|
||||
if (clio_sink_emit(sink, &ch, 1UL) == 0) {
|
||||
return 0;
|
||||
}
|
||||
count--;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int clio_emit_with_width(struct clio_sink *sink, const char *text, clio_size_t text_len, int left_align,
|
||||
char pad_char, clio_size_t width) {
|
||||
if (left_align == 0 && width > text_len) {
|
||||
if (clio_emit_repeat(sink, pad_char, width - text_len) == 0) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (text_len > 0UL && clio_sink_emit(sink, text, text_len) == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (left_align != 0 && width > text_len) {
|
||||
if (clio_emit_repeat(sink, ' ', width - text_len) == 0) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int clio_vformat(struct clio_sink *sink, const char *fmt, va_list args) {
|
||||
const char *cursor = fmt;
|
||||
|
||||
@@ -223,10 +259,43 @@ static int clio_vformat(struct clio_sink *sink, const char *fmt, va_list args) {
|
||||
}
|
||||
|
||||
{
|
||||
int left_align = 0;
|
||||
int zero_pad = 0;
|
||||
clio_size_t width = 0UL;
|
||||
int has_precision = 0;
|
||||
clio_size_t precision = 0UL;
|
||||
int length_mode = 0; /* 0: default, 1: l, 2: ll, 3: z */
|
||||
char spec = *cursor;
|
||||
char number_buf[64];
|
||||
clio_size_t out_len = 0UL;
|
||||
char number_buf[96];
|
||||
|
||||
while (spec == '-' || spec == '0') {
|
||||
if (spec == '-') {
|
||||
left_align = 1;
|
||||
} else if (spec == '0') {
|
||||
zero_pad = 1;
|
||||
}
|
||||
cursor++;
|
||||
spec = *cursor;
|
||||
}
|
||||
|
||||
while (clio_is_digit(spec) != 0) {
|
||||
width = (width * 10UL) + (clio_size_t)(unsigned long)(spec - '0');
|
||||
cursor++;
|
||||
spec = *cursor;
|
||||
}
|
||||
|
||||
if (spec == '.') {
|
||||
has_precision = 1;
|
||||
precision = 0UL;
|
||||
cursor++;
|
||||
spec = *cursor;
|
||||
|
||||
while (clio_is_digit(spec) != 0) {
|
||||
precision = (precision * 10UL) + (clio_size_t)(unsigned long)(spec - '0');
|
||||
cursor++;
|
||||
spec = *cursor;
|
||||
}
|
||||
}
|
||||
|
||||
if (spec == 'l') {
|
||||
cursor++;
|
||||
@@ -250,24 +319,36 @@ static int clio_vformat(struct clio_sink *sink, const char *fmt, va_list args) {
|
||||
|
||||
if (spec == 's') {
|
||||
const char *text = va_arg(args, const char *);
|
||||
clio_size_t text_len;
|
||||
|
||||
if (text == (const char *)0) {
|
||||
text = "(null)";
|
||||
}
|
||||
|
||||
out_len = clio_strlen(text);
|
||||
text_len = clio_strlen(text);
|
||||
if (has_precision != 0 && precision < text_len) {
|
||||
text_len = precision;
|
||||
}
|
||||
|
||||
if (clio_sink_emit(sink, text, out_len) == 0) {
|
||||
if (clio_emit_with_width(sink, text, text_len, left_align, ' ', width) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
} else if (spec == 'c') {
|
||||
char out = (char)va_arg(args, int);
|
||||
char out_buf[1];
|
||||
|
||||
if (clio_sink_emit(sink, &out, 1UL) == 0) {
|
||||
out_buf[0] = out;
|
||||
if (clio_emit_with_width(sink, out_buf, 1UL, left_align, ' ', width) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
} else if (spec == 'd' || spec == 'i') {
|
||||
long long value;
|
||||
char sign_char = '\0';
|
||||
const char *digits = number_buf;
|
||||
clio_size_t digits_len;
|
||||
clio_size_t leading_zeros = 0UL;
|
||||
clio_size_t core_len;
|
||||
int sign_emitted = 0;
|
||||
|
||||
if (length_mode == 2) {
|
||||
value = va_arg(args, long long);
|
||||
@@ -279,14 +360,72 @@ static int clio_vformat(struct clio_sink *sink, const char *fmt, va_list args) {
|
||||
value = (long long)va_arg(args, int);
|
||||
}
|
||||
|
||||
out_len = clio_i64_to_dec(value, number_buf, (clio_size_t)sizeof(number_buf));
|
||||
if (out_len == 0UL || clio_sink_emit(sink, number_buf, out_len) == 0) {
|
||||
digits_len = clio_i64_to_dec(value, number_buf, (clio_size_t)sizeof(number_buf));
|
||||
if (digits_len == 0UL) {
|
||||
return EOF;
|
||||
}
|
||||
|
||||
if (number_buf[0] == '-') {
|
||||
sign_char = '-';
|
||||
digits = number_buf + 1;
|
||||
digits_len--;
|
||||
}
|
||||
|
||||
if (has_precision != 0 && precision == 0UL && value == 0LL) {
|
||||
digits_len = 0UL;
|
||||
}
|
||||
|
||||
if (has_precision != 0 && precision > digits_len) {
|
||||
leading_zeros = precision - digits_len;
|
||||
}
|
||||
|
||||
core_len = digits_len + leading_zeros + ((sign_char != '\0') ? 1UL : 0UL);
|
||||
|
||||
if (left_align == 0 && width > core_len) {
|
||||
if (zero_pad != 0 && has_precision == 0) {
|
||||
if (sign_char != '\0') {
|
||||
if (clio_sink_emit(sink, &sign_char, 1UL) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
sign_emitted = 1;
|
||||
}
|
||||
if (clio_emit_repeat(sink, '0', width - core_len) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
} else {
|
||||
if (clio_emit_repeat(sink, ' ', width - core_len) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (sign_char != '\0' && sign_emitted == 0) {
|
||||
if (clio_sink_emit(sink, &sign_char, 1UL) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
}
|
||||
|
||||
if (clio_emit_repeat(sink, '0', leading_zeros) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
|
||||
if (digits_len > 0UL && clio_sink_emit(sink, digits, digits_len) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
|
||||
if (left_align != 0 && width > core_len) {
|
||||
if (clio_emit_repeat(sink, ' ', width - core_len) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
}
|
||||
} else if (spec == 'u' || spec == 'x' || spec == 'X') {
|
||||
unsigned long long value;
|
||||
unsigned int base = (spec == 'u') ? 10U : 16U;
|
||||
int upper = (spec == 'X') ? 1 : 0;
|
||||
clio_size_t digits_len;
|
||||
clio_size_t leading_zeros = 0UL;
|
||||
clio_size_t core_len;
|
||||
char pad_char = ' ';
|
||||
|
||||
if (length_mode == 2) {
|
||||
value = va_arg(args, unsigned long long);
|
||||
@@ -298,22 +437,98 @@ static int clio_vformat(struct clio_sink *sink, const char *fmt, va_list args) {
|
||||
value = (unsigned long long)va_arg(args, unsigned int);
|
||||
}
|
||||
|
||||
out_len = clio_u64_to_base(value, base, upper, number_buf, (clio_size_t)sizeof(number_buf));
|
||||
if (out_len == 0UL || clio_sink_emit(sink, number_buf, out_len) == 0) {
|
||||
digits_len = clio_u64_to_base(value, base, upper, number_buf, (clio_size_t)sizeof(number_buf));
|
||||
if (digits_len == 0UL) {
|
||||
return EOF;
|
||||
}
|
||||
|
||||
if (has_precision != 0 && precision == 0UL && value == 0ULL) {
|
||||
digits_len = 0UL;
|
||||
}
|
||||
|
||||
if (has_precision != 0 && precision > digits_len) {
|
||||
leading_zeros = precision - digits_len;
|
||||
}
|
||||
|
||||
core_len = digits_len + leading_zeros;
|
||||
|
||||
if (zero_pad != 0 && has_precision == 0 && left_align == 0) {
|
||||
pad_char = '0';
|
||||
}
|
||||
|
||||
if (left_align == 0 && width > core_len) {
|
||||
if (clio_emit_repeat(sink, pad_char, width - core_len) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
}
|
||||
|
||||
if (clio_emit_repeat(sink, '0', leading_zeros) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
|
||||
if (digits_len > 0UL && clio_sink_emit(sink, number_buf, digits_len) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
|
||||
if (left_align != 0 && width > core_len) {
|
||||
if (clio_emit_repeat(sink, ' ', width - core_len) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
}
|
||||
} else if (spec == 'p') {
|
||||
const void *ptr = va_arg(args, const void *);
|
||||
unsigned long long value = (unsigned long long)(unsigned long)ptr;
|
||||
clio_size_t digits_len;
|
||||
clio_size_t leading_zeros = 0UL;
|
||||
clio_size_t core_len;
|
||||
|
||||
digits_len = clio_u64_to_base(value, 16U, 0, number_buf, (clio_size_t)sizeof(number_buf));
|
||||
if (digits_len == 0UL) {
|
||||
return EOF;
|
||||
}
|
||||
|
||||
if (has_precision != 0 && precision == 0UL && value == 0ULL) {
|
||||
digits_len = 0UL;
|
||||
}
|
||||
|
||||
if (has_precision != 0 && precision > digits_len) {
|
||||
leading_zeros = precision - digits_len;
|
||||
}
|
||||
|
||||
core_len = 2UL + leading_zeros + digits_len;
|
||||
|
||||
if (left_align == 0 && width > core_len) {
|
||||
if (clio_emit_repeat(sink, ' ', width - core_len) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
}
|
||||
|
||||
if (clio_sink_emit(sink, "0x", 2UL) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
|
||||
out_len = clio_u64_to_base(value, 16U, 0, number_buf, (clio_size_t)sizeof(number_buf));
|
||||
if (out_len == 0UL || clio_sink_emit(sink, number_buf, out_len) == 0) {
|
||||
if (clio_emit_repeat(sink, '0', leading_zeros) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
|
||||
if (digits_len > 0UL && clio_sink_emit(sink, number_buf, digits_len) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
|
||||
if (left_align != 0 && width > core_len) {
|
||||
if (clio_emit_repeat(sink, ' ', width - core_len) == 0) {
|
||||
return EOF;
|
||||
}
|
||||
}
|
||||
} else if (spec == 'n') {
|
||||
int *out_count = va_arg(args, int *);
|
||||
if (out_count != (int *)0) {
|
||||
if (sink->count > 0x7FFFFFFFUL) {
|
||||
*out_count = 0x7FFFFFFF;
|
||||
} else {
|
||||
*out_count = (int)sink->count;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
char fallback[2];
|
||||
fallback[0] = spec;
|
||||
|
||||
@@ -355,3 +355,19 @@ u64 cleonos_sys_dl_close(u64 handle) {
|
||||
u64 cleonos_sys_dl_sym(u64 handle, const char *symbol) {
|
||||
return cleonos_syscall(CLEONOS_SYSCALL_DL_SYM, handle, (u64)symbol, 0ULL);
|
||||
}
|
||||
|
||||
u64 cleonos_sys_fb_info(cleonos_fb_info *out_info) {
|
||||
return cleonos_syscall(CLEONOS_SYSCALL_FB_INFO, (u64)out_info, 0ULL, 0ULL);
|
||||
}
|
||||
|
||||
u64 cleonos_sys_fb_blit(const cleonos_fb_blit_req *req) {
|
||||
return cleonos_syscall(CLEONOS_SYSCALL_FB_BLIT, (u64)req, 0ULL, 0ULL);
|
||||
}
|
||||
|
||||
u64 cleonos_sys_fb_clear(u64 rgb) {
|
||||
return cleonos_syscall(CLEONOS_SYSCALL_FB_CLEAR, rgb, 0ULL, 0ULL);
|
||||
}
|
||||
|
||||
u64 cleonos_sys_kernel_version(char *out_version, u64 out_size) {
|
||||
return cleonos_syscall(CLEONOS_SYSCALL_KERNEL_VERSION, (u64)out_version, out_size, 0ULL);
|
||||
}
|
||||
|
||||
1
cleonos/third-party/doomgeneric
vendored
Submodule
1
cleonos/third-party/doomgeneric
vendored
Submodule
Submodule cleonos/third-party/doomgeneric added at 4c4ea3bdc9
163
clks/CMakeLists.txt
Normal file
163
clks/CMakeLists.txt
Normal file
@@ -0,0 +1,163 @@
|
||||
set(KERNEL_SOURCE_DIRS
|
||||
"${CMAKE_SOURCE_DIR}/clks/kernel"
|
||||
"${CMAKE_SOURCE_DIR}/clks/arch/${CLKS_ARCH}"
|
||||
"${CMAKE_SOURCE_DIR}/clks/third_party"
|
||||
)
|
||||
|
||||
set(C_SOURCES)
|
||||
set(CPP_SOURCES)
|
||||
set(ASM_SOURCES)
|
||||
foreach(_src_dir IN LISTS KERNEL_SOURCE_DIRS)
|
||||
if(EXISTS "${_src_dir}")
|
||||
file(GLOB_RECURSE _c_abs CONFIGURE_DEPENDS "${_src_dir}/*.c")
|
||||
file(GLOB_RECURSE _cpp_abs CONFIGURE_DEPENDS "${_src_dir}/*.cpp")
|
||||
file(GLOB_RECURSE _s_abs CONFIGURE_DEPENDS "${_src_dir}/*.S")
|
||||
foreach(_abs IN LISTS _c_abs)
|
||||
file(RELATIVE_PATH _rel "${CMAKE_SOURCE_DIR}" "${_abs}")
|
||||
list(APPEND C_SOURCES "${_rel}")
|
||||
endforeach()
|
||||
foreach(_abs IN LISTS _cpp_abs)
|
||||
file(RELATIVE_PATH _rel "${CMAKE_SOURCE_DIR}" "${_abs}")
|
||||
list(APPEND CPP_SOURCES "${_rel}")
|
||||
endforeach()
|
||||
foreach(_abs IN LISTS _s_abs)
|
||||
file(RELATIVE_PATH _rel "${CMAKE_SOURCE_DIR}" "${_abs}")
|
||||
list(APPEND ASM_SOURCES "${_rel}")
|
||||
endforeach()
|
||||
endif()
|
||||
endforeach()
|
||||
list(REMOVE_DUPLICATES C_SOURCES)
|
||||
list(REMOVE_DUPLICATES CPP_SOURCES)
|
||||
list(REMOVE_DUPLICATES ASM_SOURCES)
|
||||
list(SORT C_SOURCES)
|
||||
list(SORT CPP_SOURCES)
|
||||
list(SORT ASM_SOURCES)
|
||||
|
||||
set(CLKS_BOOT_LIMINE_SOURCE "clks/kernel/boot/limine/limine_requests.c")
|
||||
if(EXISTS "${CMAKE_SOURCE_DIR}/${CLKS_BOOT_LIMINE_SOURCE}")
|
||||
list(APPEND C_SOURCES "${CLKS_BOOT_LIMINE_SOURCE}")
|
||||
list(REMOVE_DUPLICATES C_SOURCES)
|
||||
list(SORT C_SOURCES)
|
||||
else()
|
||||
cl_log_error("missing required boot source: ${CLKS_BOOT_LIMINE_SOURCE}")
|
||||
endif()
|
||||
|
||||
file(GLOB_RECURSE KERNEL_INC_SOURCES_ABS CONFIGURE_DEPENDS
|
||||
"${CMAKE_SOURCE_DIR}/clks/**/*.inc"
|
||||
)
|
||||
list(SORT KERNEL_INC_SOURCES_ABS)
|
||||
|
||||
if(NOT C_SOURCES)
|
||||
cl_log_error("no kernel C sources found in clks/")
|
||||
endif()
|
||||
if(NOT EXISTS "${LINKER_SCRIPT}")
|
||||
cl_log_error("missing linker script: ${LINKER_SCRIPT}")
|
||||
endif()
|
||||
|
||||
function(add_kernel_c_object SRC OUTPUT_LIST_VAR)
|
||||
string(REGEX REPLACE "\\.c$" ".o" OBJ_REL "${SRC}")
|
||||
set(OBJ_PATH "${OBJ_ROOT}/${OBJ_REL}")
|
||||
get_filename_component(OBJ_DIR "${OBJ_PATH}" DIRECTORY)
|
||||
set(_deps "${CMAKE_SOURCE_DIR}/${SRC}" ${KERNEL_INC_SOURCES_ABS})
|
||||
set(_cflags ${CFLAGS_COMMON})
|
||||
|
||||
if("${SRC}" MATCHES "^clks/third_party/")
|
||||
list(APPEND _cflags
|
||||
-Wno-error
|
||||
-Wno-unused-function
|
||||
-Wno-unused-parameter
|
||||
-Wno-sign-compare
|
||||
-Wno-type-limits
|
||||
-Wno-missing-field-initializers
|
||||
)
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${OBJ_PATH}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${OBJ_DIR}"
|
||||
COMMAND ${CC} ${_cflags} ${ARCH_CFLAGS} -c "${CMAKE_SOURCE_DIR}/${SRC}" -o "${OBJ_PATH}"
|
||||
DEPENDS ${_deps}
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
set(${OUTPUT_LIST_VAR} ${${OUTPUT_LIST_VAR}} "${OBJ_PATH}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(add_kernel_asm_object SRC OUTPUT_LIST_VAR)
|
||||
string(REGEX REPLACE "\\.S$" ".o" OBJ_REL "${SRC}")
|
||||
set(OBJ_PATH "${OBJ_ROOT}/${OBJ_REL}")
|
||||
get_filename_component(OBJ_DIR "${OBJ_PATH}" DIRECTORY)
|
||||
set(_deps "${CMAKE_SOURCE_DIR}/${SRC}" ${KERNEL_INC_SOURCES_ABS})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${OBJ_PATH}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${OBJ_DIR}"
|
||||
COMMAND ${CC} ${ASFLAGS_COMMON} ${ARCH_CFLAGS} -c "${CMAKE_SOURCE_DIR}/${SRC}" -o "${OBJ_PATH}"
|
||||
DEPENDS ${_deps}
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
set(${OUTPUT_LIST_VAR} ${${OUTPUT_LIST_VAR}} "${OBJ_PATH}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(add_kernel_cpp_object SRC OUTPUT_LIST_VAR)
|
||||
string(REGEX REPLACE "\\.cpp$" ".o" OBJ_REL "${SRC}")
|
||||
set(OBJ_PATH "${OBJ_ROOT}/${OBJ_REL}")
|
||||
get_filename_component(OBJ_DIR "${OBJ_PATH}" DIRECTORY)
|
||||
set(_deps "${CMAKE_SOURCE_DIR}/${SRC}" ${KERNEL_INC_SOURCES_ABS})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${OBJ_PATH}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${OBJ_DIR}"
|
||||
COMMAND ${KERNEL_CXX} ${CXXFLAGS_COMMON} ${ARCH_CFLAGS} -c "${CMAKE_SOURCE_DIR}/${SRC}" -o "${OBJ_PATH}"
|
||||
DEPENDS ${_deps}
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
set(${OUTPUT_LIST_VAR} ${${OUTPUT_LIST_VAR}} "${OBJ_PATH}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
set(KERNEL_OBJECTS)
|
||||
foreach(SRC IN LISTS C_SOURCES)
|
||||
add_kernel_c_object("${SRC}" KERNEL_OBJECTS)
|
||||
endforeach()
|
||||
foreach(SRC IN LISTS CPP_SOURCES)
|
||||
add_kernel_cpp_object("${SRC}" KERNEL_OBJECTS)
|
||||
endforeach()
|
||||
foreach(SRC IN LISTS ASM_SOURCES)
|
||||
add_kernel_asm_object("${SRC}" KERNEL_OBJECTS)
|
||||
endforeach()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${KERNEL_RUST_LIB}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${BUILD_ROOT}"
|
||||
COMMAND ${RUSTC} --crate-type staticlib -C panic=abort -O "${CMAKE_SOURCE_DIR}/clks/rust/src/lib.rs" -o "${KERNEL_RUST_LIB}"
|
||||
DEPENDS "${CMAKE_SOURCE_DIR}/clks/rust/src/lib.rs"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${KERNEL_ELF}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${BUILD_ROOT}"
|
||||
COMMAND ${LD} ${LDFLAGS_COMMON} -T "${LINKER_SCRIPT}" -o "${KERNEL_ELF}" ${KERNEL_OBJECTS} "${KERNEL_RUST_LIB}"
|
||||
DEPENDS ${KERNEL_OBJECTS} "${LINKER_SCRIPT}" "${KERNEL_RUST_LIB}" "${CMAKE_SOURCE_DIR}/clks/rust/src/lib.rs"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(kernel DEPENDS "${KERNEL_ELF}")
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${KERNEL_SYMBOLS_FILE}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${BUILD_ROOT}"
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
"-DNM_TOOL=${NM}"
|
||||
"-DADDR2LINE_TOOL=${ADDR2LINE}"
|
||||
"-DKERNEL_ELF=${KERNEL_ELF}"
|
||||
"-DOUT_SYMBOL_FILE=${KERNEL_SYMBOLS_FILE}"
|
||||
-P "${CMAKE_SOURCE_DIR}/cmake/gen_kernel_symbols.cmake"
|
||||
DEPENDS "${KERNEL_ELF}" "${CMAKE_SOURCE_DIR}/cmake/gen_kernel_symbols.cmake"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(kernel-symbols DEPENDS "${KERNEL_SYMBOLS_FILE}")
|
||||
add_dependencies(kernel-symbols kernel)
|
||||
@@ -74,5 +74,7 @@ u64 clks_exec_request_count(void);
|
||||
u64 clks_exec_success_count(void);
|
||||
clks_bool clks_exec_is_running(void);
|
||||
clks_bool clks_exec_current_path_is_user(void);
|
||||
clks_bool clks_exec_current_user_ptr_readable(u64 addr, u64 size);
|
||||
clks_bool clks_exec_current_user_ptr_writable(u64 addr, u64 size);
|
||||
|
||||
#endif
|
||||
|
||||
19
clks/include/clks/panic_qr.h
Normal file
19
clks/include/clks/panic_qr.h
Normal file
@@ -0,0 +1,19 @@
|
||||
#ifndef CLKS_PANIC_QR_H
|
||||
#define CLKS_PANIC_QR_H
|
||||
|
||||
#include <clks/types.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
clks_bool clks_panic_qr_prepare(void);
|
||||
clks_bool clks_panic_qr_show(void);
|
||||
u64 clks_panic_qr_total_lines(void);
|
||||
u64 clks_panic_qr_dropped_lines(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -84,6 +84,10 @@
|
||||
#define CLKS_SYSCALL_DL_CLOSE 78ULL
|
||||
#define CLKS_SYSCALL_DL_SYM 79ULL
|
||||
#define CLKS_SYSCALL_EXEC_PATHV_IO 80ULL
|
||||
#define CLKS_SYSCALL_FB_INFO 81ULL
|
||||
#define CLKS_SYSCALL_FB_BLIT 82ULL
|
||||
#define CLKS_SYSCALL_FB_CLEAR 83ULL
|
||||
#define CLKS_SYSCALL_KERNEL_VERSION 84ULL
|
||||
|
||||
void clks_syscall_init(void);
|
||||
u64 clks_syscall_dispatch(void *frame_ptr);
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include <clks/framebuffer.h>
|
||||
#include <clks/fs.h>
|
||||
#include <clks/panic.h>
|
||||
#include <clks/panic_qr.h>
|
||||
#include <clks/serial.h>
|
||||
#include <clks/string.h>
|
||||
#include <clks/types.h>
|
||||
@@ -13,6 +14,16 @@
|
||||
#define CLKS_PANIC_STACK_WINDOW_BYTES (128ULL * 1024ULL)
|
||||
#define CLKS_PANIC_SYMBOL_FILE "/system/kernel.sym"
|
||||
#define CLKS_PANIC_KERNEL_ADDR_BASE 0xFFFF800000000000ULL
|
||||
#define CLKS_PANIC_QR_HINT "\nPress SPACE to toggle panic log QR.\n"
|
||||
#define CLKS_PANIC_REASON_MAX 192U
|
||||
#define CLKS_PANIC_NAME_MAX 64U
|
||||
|
||||
#define CLKS_PANIC_PS2_DATA_PORT 0x60U
|
||||
#define CLKS_PANIC_PS2_STATUS_PORT 0x64U
|
||||
#define CLKS_PANIC_PS2_STATUS_OBF 0x01U
|
||||
#define CLKS_PANIC_SC_SPACE_MAKE 0x39U
|
||||
#define CLKS_PANIC_SC_SPACE_BREAK 0xB9U
|
||||
#define CLKS_PANIC_SC_EXT_PREFIX 0xE0U
|
||||
|
||||
struct clks_panic_console {
|
||||
u32 cols;
|
||||
@@ -28,6 +39,28 @@ static clks_bool clks_panic_symbols_checked = CLKS_FALSE;
|
||||
static const char *clks_panic_symbols_data = CLKS_NULL;
|
||||
static u64 clks_panic_symbols_size = 0ULL;
|
||||
|
||||
enum clks_panic_screen_kind {
|
||||
CLKS_PANIC_SCREEN_NONE = 0,
|
||||
CLKS_PANIC_SCREEN_REASON = 1,
|
||||
CLKS_PANIC_SCREEN_EXCEPTION = 2
|
||||
};
|
||||
|
||||
struct clks_panic_screen_snapshot {
|
||||
enum clks_panic_screen_kind kind;
|
||||
char reason[CLKS_PANIC_REASON_MAX];
|
||||
char name[CLKS_PANIC_NAME_MAX];
|
||||
u64 vector;
|
||||
u64 error_code;
|
||||
u64 rip;
|
||||
u64 rbp;
|
||||
u64 rsp;
|
||||
clks_bool has_reason;
|
||||
clks_bool has_name;
|
||||
};
|
||||
|
||||
static struct clks_panic_screen_snapshot clks_panic_screen = {
|
||||
CLKS_PANIC_SCREEN_NONE, {0}, {0}, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, CLKS_FALSE, CLKS_FALSE};
|
||||
|
||||
static inline void clks_panic_disable_interrupts(void) {
|
||||
#if defined(CLKS_ARCH_X86_64)
|
||||
__asm__ volatile("cli");
|
||||
@@ -36,6 +69,55 @@ static inline void clks_panic_disable_interrupts(void) {
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(CLKS_ARCH_X86_64)
|
||||
static inline u8 clks_panic_inb(u16 port) {
|
||||
u8 value;
|
||||
|
||||
__asm__ volatile("inb %1, %0" : "=a"(value) : "Nd"(port));
|
||||
return value;
|
||||
}
|
||||
|
||||
static clks_bool clks_panic_ps2_has_output(void) {
|
||||
return ((clks_panic_inb(CLKS_PANIC_PS2_STATUS_PORT) & CLKS_PANIC_PS2_STATUS_OBF) != 0U) ? CLKS_TRUE : CLKS_FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
static clks_bool clks_panic_poll_space_press(clks_bool *space_down) {
|
||||
#if defined(CLKS_ARCH_X86_64)
|
||||
clks_bool pressed = CLKS_FALSE;
|
||||
|
||||
if (space_down == CLKS_NULL) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
while (clks_panic_ps2_has_output() == CLKS_TRUE) {
|
||||
u8 scancode = clks_panic_inb(CLKS_PANIC_PS2_DATA_PORT);
|
||||
|
||||
if (scancode == CLKS_PANIC_SC_EXT_PREFIX) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (scancode == CLKS_PANIC_SC_SPACE_BREAK) {
|
||||
*space_down = CLKS_FALSE;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (scancode == CLKS_PANIC_SC_SPACE_MAKE) {
|
||||
if (*space_down == CLKS_FALSE) {
|
||||
*space_down = CLKS_TRUE;
|
||||
pressed = CLKS_TRUE;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
return pressed;
|
||||
#else
|
||||
(void)space_down;
|
||||
return CLKS_FALSE;
|
||||
#endif
|
||||
}
|
||||
|
||||
static void clks_panic_u64_to_hex(u64 value, char out[19]) {
|
||||
int nibble;
|
||||
|
||||
@@ -399,7 +481,7 @@ static clks_bool clks_panic_lookup_symbol(u64 addr, const char **out_name, usize
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
static void clks_panic_emit_bt_entry(struct clks_panic_console *console, u32 index, u64 rip) {
|
||||
static void clks_panic_emit_bt_entry(struct clks_panic_console *console, u32 index, u64 rip, clks_bool serial_enabled) {
|
||||
char index_dec[12];
|
||||
char rip_hex[19];
|
||||
const char *sym_name = CLKS_NULL;
|
||||
@@ -413,6 +495,7 @@ static void clks_panic_emit_bt_entry(struct clks_panic_console *console, u32 ind
|
||||
clks_panic_u64_to_hex(rip, rip_hex);
|
||||
has_symbol = clks_panic_lookup_symbol(rip, &sym_name, &sym_name_len, &sym_base, &sym_source, &sym_source_len);
|
||||
|
||||
if (serial_enabled == CLKS_TRUE) {
|
||||
clks_serial_write("[PANIC][BT] #");
|
||||
clks_serial_write(index_dec);
|
||||
clks_serial_write(" ");
|
||||
@@ -435,6 +518,7 @@ static void clks_panic_emit_bt_entry(struct clks_panic_console *console, u32 ind
|
||||
}
|
||||
|
||||
clks_serial_write("\n");
|
||||
}
|
||||
|
||||
if (console == CLKS_NULL) {
|
||||
return;
|
||||
@@ -480,7 +564,8 @@ static clks_bool clks_panic_stack_ptr_valid(u64 ptr, u64 stack_low, u64 stack_hi
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
static void clks_panic_emit_backtrace(struct clks_panic_console *console, u64 rip, u64 rbp, u64 rsp) {
|
||||
static void clks_panic_emit_backtrace(struct clks_panic_console *console, u64 rip, u64 rbp, u64 rsp,
|
||||
clks_bool serial_enabled) {
|
||||
u64 current_rbp;
|
||||
u64 stack_low;
|
||||
u64 stack_high;
|
||||
@@ -490,17 +575,21 @@ static void clks_panic_emit_backtrace(struct clks_panic_console *console, u64 ri
|
||||
return;
|
||||
}
|
||||
|
||||
if (serial_enabled == CLKS_TRUE) {
|
||||
clks_panic_serial_write_line("[PANIC][BT] BEGIN");
|
||||
}
|
||||
|
||||
if (console != CLKS_NULL) {
|
||||
clks_panic_console_write(console, "\nBACKTRACE:\n");
|
||||
}
|
||||
|
||||
clks_panic_emit_bt_entry(console, frame, rip);
|
||||
clks_panic_emit_bt_entry(console, frame, rip, serial_enabled);
|
||||
frame++;
|
||||
|
||||
if (rbp == 0ULL || rsp == 0ULL || frame >= CLKS_PANIC_BACKTRACE_MAX) {
|
||||
if (serial_enabled == CLKS_TRUE) {
|
||||
clks_panic_serial_write_line("[PANIC][BT] END");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -508,7 +597,9 @@ static void clks_panic_emit_backtrace(struct clks_panic_console *console, u64 ri
|
||||
stack_high = rsp + CLKS_PANIC_STACK_WINDOW_BYTES;
|
||||
|
||||
if (stack_high <= stack_low) {
|
||||
if (serial_enabled == CLKS_TRUE) {
|
||||
clks_panic_serial_write_line("[PANIC][BT] END");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -531,7 +622,7 @@ static void clks_panic_emit_backtrace(struct clks_panic_console *console, u64 ri
|
||||
break;
|
||||
}
|
||||
|
||||
clks_panic_emit_bt_entry(console, frame, ret_rip);
|
||||
clks_panic_emit_bt_entry(console, frame, ret_rip, serial_enabled);
|
||||
frame++;
|
||||
|
||||
if (next_rbp <= current_rbp) {
|
||||
@@ -541,8 +632,10 @@ static void clks_panic_emit_backtrace(struct clks_panic_console *console, u64 ri
|
||||
current_rbp = next_rbp;
|
||||
}
|
||||
|
||||
if (serial_enabled == CLKS_TRUE) {
|
||||
clks_panic_serial_write_line("[PANIC][BT] END");
|
||||
}
|
||||
}
|
||||
|
||||
static void clks_panic_capture_context(u64 *out_rip, u64 *out_rbp, u64 *out_rsp) {
|
||||
if (out_rip != CLKS_NULL) {
|
||||
@@ -572,12 +665,137 @@ static void clks_panic_capture_context(u64 *out_rip, u64 *out_rbp, u64 *out_rsp)
|
||||
#endif
|
||||
}
|
||||
|
||||
static void clks_panic_copy_text(char *dst, usize dst_size, const char *src) {
|
||||
usize i = 0U;
|
||||
|
||||
if (dst == CLKS_NULL || dst_size == 0U) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (src == CLKS_NULL) {
|
||||
dst[0] = '\0';
|
||||
return;
|
||||
}
|
||||
|
||||
while (i + 1U < dst_size && src[i] != '\0') {
|
||||
dst[i] = src[i];
|
||||
i++;
|
||||
}
|
||||
|
||||
dst[i] = '\0';
|
||||
}
|
||||
|
||||
static void clks_panic_snapshot_reason(const char *reason, u64 rip, u64 rbp, u64 rsp) {
|
||||
clks_panic_screen.kind = CLKS_PANIC_SCREEN_REASON;
|
||||
clks_panic_screen.vector = 0ULL;
|
||||
clks_panic_screen.error_code = 0ULL;
|
||||
clks_panic_screen.rip = rip;
|
||||
clks_panic_screen.rbp = rbp;
|
||||
clks_panic_screen.rsp = rsp;
|
||||
clks_panic_screen.has_name = CLKS_FALSE;
|
||||
clks_panic_screen.name[0] = '\0';
|
||||
|
||||
if (reason != CLKS_NULL && reason[0] != '\0') {
|
||||
clks_panic_copy_text(clks_panic_screen.reason, sizeof(clks_panic_screen.reason), reason);
|
||||
clks_panic_screen.has_reason = CLKS_TRUE;
|
||||
} else {
|
||||
clks_panic_screen.reason[0] = '\0';
|
||||
clks_panic_screen.has_reason = CLKS_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static void clks_panic_snapshot_exception(const char *name, u64 vector, u64 error_code, u64 rip, u64 rbp, u64 rsp) {
|
||||
clks_panic_screen.kind = CLKS_PANIC_SCREEN_EXCEPTION;
|
||||
clks_panic_screen.vector = vector;
|
||||
clks_panic_screen.error_code = error_code;
|
||||
clks_panic_screen.rip = rip;
|
||||
clks_panic_screen.rbp = rbp;
|
||||
clks_panic_screen.rsp = rsp;
|
||||
clks_panic_screen.has_reason = CLKS_FALSE;
|
||||
clks_panic_screen.reason[0] = '\0';
|
||||
|
||||
if (name != CLKS_NULL && name[0] != '\0') {
|
||||
clks_panic_copy_text(clks_panic_screen.name, sizeof(clks_panic_screen.name), name);
|
||||
clks_panic_screen.has_name = CLKS_TRUE;
|
||||
} else {
|
||||
clks_panic_screen.name[0] = '\0';
|
||||
clks_panic_screen.has_name = CLKS_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static void clks_panic_render_snapshot_console(clks_bool serial_backtrace) {
|
||||
struct clks_panic_console console;
|
||||
char hex_buf[19];
|
||||
|
||||
if (clks_panic_console_init(&console) == CLKS_TRUE) {
|
||||
clks_fb_clear(CLKS_PANIC_BG);
|
||||
clks_panic_console_write(&console, "CLeonOS KERNEL PANIC\n");
|
||||
clks_panic_console_write(&console, "====================\n\n");
|
||||
|
||||
if (clks_panic_screen.kind == CLKS_PANIC_SCREEN_EXCEPTION) {
|
||||
clks_panic_console_write(&console, "TYPE: CPU EXCEPTION\n");
|
||||
|
||||
if (clks_panic_screen.has_name == CLKS_TRUE) {
|
||||
clks_panic_console_write(&console, "NAME: ");
|
||||
clks_panic_console_write(&console, clks_panic_screen.name);
|
||||
clks_panic_console_write(&console, "\n");
|
||||
}
|
||||
|
||||
clks_panic_u64_to_hex(clks_panic_screen.vector, hex_buf);
|
||||
clks_panic_console_write(&console, "VECTOR: ");
|
||||
clks_panic_console_write(&console, hex_buf);
|
||||
clks_panic_console_write(&console, "\n");
|
||||
|
||||
clks_panic_u64_to_hex(clks_panic_screen.error_code, hex_buf);
|
||||
clks_panic_console_write(&console, "ERROR: ");
|
||||
clks_panic_console_write(&console, hex_buf);
|
||||
clks_panic_console_write(&console, "\n");
|
||||
|
||||
clks_panic_u64_to_hex(clks_panic_screen.rip, hex_buf);
|
||||
clks_panic_console_write(&console, "RIP: ");
|
||||
clks_panic_console_write(&console, hex_buf);
|
||||
clks_panic_console_write(&console, "\n");
|
||||
} else if (clks_panic_screen.has_reason == CLKS_TRUE) {
|
||||
clks_panic_console_write(&console, "REASON: ");
|
||||
clks_panic_console_write(&console, clks_panic_screen.reason);
|
||||
clks_panic_console_write(&console, "\n");
|
||||
}
|
||||
|
||||
clks_panic_emit_backtrace(&console, clks_panic_screen.rip, clks_panic_screen.rbp, clks_panic_screen.rsp,
|
||||
serial_backtrace);
|
||||
clks_panic_console_write(&console, "\nSystem halted. Please reboot the computer.\n");
|
||||
clks_panic_console_write(&console, CLKS_PANIC_QR_HINT);
|
||||
} else {
|
||||
clks_panic_emit_backtrace(CLKS_NULL, clks_panic_screen.rip, clks_panic_screen.rbp, clks_panic_screen.rsp,
|
||||
serial_backtrace);
|
||||
}
|
||||
}
|
||||
|
||||
static CLKS_NORETURN void clks_panic_halt_loop(void) {
|
||||
clks_cpu_halt_forever();
|
||||
clks_bool space_down = CLKS_FALSE;
|
||||
clks_bool qr_shown = CLKS_FALSE;
|
||||
|
||||
for (;;) {
|
||||
if (clks_panic_poll_space_press(&space_down) == CLKS_TRUE) {
|
||||
if (qr_shown == CLKS_FALSE) {
|
||||
if (clks_panic_qr_show() == CLKS_TRUE) {
|
||||
qr_shown = CLKS_TRUE;
|
||||
clks_panic_serial_write_line("[PANIC][QR] DISPLAYED");
|
||||
} else {
|
||||
clks_panic_serial_write_line("[PANIC][QR] PREPARE/SHOW FAILED");
|
||||
}
|
||||
} else {
|
||||
clks_panic_render_snapshot_console(CLKS_FALSE);
|
||||
qr_shown = CLKS_FALSE;
|
||||
clks_panic_serial_write_line("[PANIC][QR] RETURNED TO PANIC PAGE");
|
||||
}
|
||||
}
|
||||
|
||||
clks_cpu_pause();
|
||||
}
|
||||
}
|
||||
|
||||
CLKS_NORETURN void clks_panic(const char *reason) {
|
||||
struct clks_panic_console console;
|
||||
u64 rip = 0ULL;
|
||||
u64 rbp = 0ULL;
|
||||
u64 rsp = 0ULL;
|
||||
@@ -597,29 +815,19 @@ CLKS_NORETURN void clks_panic(const char *reason) {
|
||||
clks_panic_serial_write_line(reason);
|
||||
}
|
||||
|
||||
if (clks_panic_console_init(&console) == CLKS_TRUE) {
|
||||
clks_fb_clear(CLKS_PANIC_BG);
|
||||
clks_panic_snapshot_reason(reason, rip, rbp, rsp);
|
||||
clks_panic_render_snapshot_console(CLKS_TRUE);
|
||||
|
||||
clks_panic_console_write(&console, "CLeonOS KERNEL PANIC\n");
|
||||
clks_panic_console_write(&console, "====================\n\n");
|
||||
|
||||
if (reason != CLKS_NULL) {
|
||||
clks_panic_console_write(&console, "REASON: ");
|
||||
clks_panic_console_write(&console, reason);
|
||||
clks_panic_console_write(&console, "\n");
|
||||
}
|
||||
|
||||
clks_panic_emit_backtrace(&console, rip, rbp, rsp);
|
||||
clks_panic_console_write(&console, "\nSystem halted. Please reboot the computer.\n");
|
||||
if (clks_panic_qr_prepare() == CLKS_TRUE) {
|
||||
clks_panic_serial_write_line("[PANIC][QR] READY (PRESS SPACE TO TOGGLE)");
|
||||
} else {
|
||||
clks_panic_emit_backtrace(CLKS_NULL, rip, rbp, rsp);
|
||||
clks_panic_serial_write_line("[PANIC][QR] NOT AVAILABLE");
|
||||
}
|
||||
|
||||
clks_panic_halt_loop();
|
||||
}
|
||||
|
||||
CLKS_NORETURN void clks_panic_exception(const char *name, u64 vector, u64 error_code, u64 rip, u64 rbp, u64 rsp) {
|
||||
struct clks_panic_console console;
|
||||
char hex_buf[19];
|
||||
|
||||
clks_panic_disable_interrupts();
|
||||
@@ -643,38 +851,13 @@ CLKS_NORETURN void clks_panic_exception(const char *name, u64 vector, u64 error_
|
||||
clks_panic_u64_to_hex(rip, hex_buf);
|
||||
clks_panic_serial_write_line(hex_buf);
|
||||
|
||||
if (clks_panic_console_init(&console) == CLKS_TRUE) {
|
||||
clks_fb_clear(CLKS_PANIC_BG);
|
||||
clks_panic_snapshot_exception(name, vector, error_code, rip, rbp, rsp);
|
||||
clks_panic_render_snapshot_console(CLKS_TRUE);
|
||||
|
||||
clks_panic_console_write(&console, "CLeonOS KERNEL PANIC\n");
|
||||
clks_panic_console_write(&console, "====================\n\n");
|
||||
clks_panic_console_write(&console, "TYPE: CPU EXCEPTION\n");
|
||||
|
||||
if (name != CLKS_NULL) {
|
||||
clks_panic_console_write(&console, "NAME: ");
|
||||
clks_panic_console_write(&console, name);
|
||||
clks_panic_console_write(&console, "\n");
|
||||
}
|
||||
|
||||
clks_panic_u64_to_hex(vector, hex_buf);
|
||||
clks_panic_console_write(&console, "VECTOR: ");
|
||||
clks_panic_console_write(&console, hex_buf);
|
||||
clks_panic_console_write(&console, "\n");
|
||||
|
||||
clks_panic_u64_to_hex(error_code, hex_buf);
|
||||
clks_panic_console_write(&console, "ERROR: ");
|
||||
clks_panic_console_write(&console, hex_buf);
|
||||
clks_panic_console_write(&console, "\n");
|
||||
|
||||
clks_panic_u64_to_hex(rip, hex_buf);
|
||||
clks_panic_console_write(&console, "RIP: ");
|
||||
clks_panic_console_write(&console, hex_buf);
|
||||
clks_panic_console_write(&console, "\n");
|
||||
|
||||
clks_panic_emit_backtrace(&console, rip, rbp, rsp);
|
||||
clks_panic_console_write(&console, "\nSystem halted. Please reboot the computer.\n");
|
||||
if (clks_panic_qr_prepare() == CLKS_TRUE) {
|
||||
clks_panic_serial_write_line("[PANIC][QR] READY (PRESS SPACE TO TOGGLE)");
|
||||
} else {
|
||||
clks_panic_emit_backtrace(CLKS_NULL, rip, rbp, rsp);
|
||||
clks_panic_serial_write_line("[PANIC][QR] NOT AVAILABLE");
|
||||
}
|
||||
|
||||
clks_panic_halt_loop();
|
||||
395
clks/kernel/core/panic_qr.cpp
Normal file
395
clks/kernel/core/panic_qr.cpp
Normal file
@@ -0,0 +1,395 @@
|
||||
extern "C" {
|
||||
#include <clks/framebuffer.h>
|
||||
#include <clks/log.h>
|
||||
#include <clks/panic_qr.h>
|
||||
#include <clks/serial.h>
|
||||
#include <clks/string.h>
|
||||
#include <clks/types.h>
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
#define NDEBUG 1
|
||||
#endif
|
||||
|
||||
#define MINIZ_NO_STDIO 1
|
||||
#define MINIZ_NO_INFLATE_APIS 1
|
||||
#define MINIZ_NO_TIME 1
|
||||
#define MINIZ_NO_MALLOC 1
|
||||
#define MINIZ_NO_ZLIB_COMPATIBLE_NAMES 1
|
||||
#include "../../third_party/miniz/miniz.h"
|
||||
|
||||
extern "C" {
|
||||
#include "../../third_party/qrcodegen/qrcodegen.h"
|
||||
}
|
||||
|
||||
#define CLKS_PANIC_QR_BORDER 4U
|
||||
#define CLKS_PANIC_QR_MAX_LINES 256U
|
||||
#define CLKS_PANIC_QR_LINE_MAX 256U
|
||||
#define CLKS_PANIC_QR_TEXT_MAX ((CLKS_PANIC_QR_MAX_LINES * CLKS_PANIC_QR_LINE_MAX) + CLKS_PANIC_QR_MAX_LINES)
|
||||
#define CLKS_PANIC_QR_COMP_MAX (CLKS_PANIC_QR_TEXT_MAX + 2048U)
|
||||
#define CLKS_PANIC_QR_MAX_COMP_BYTES 2953U
|
||||
#define CLKS_PANIC_QR_DIGITS_MAX (((CLKS_PANIC_QR_MAX_COMP_BYTES / 7U) * 17U) + 17U)
|
||||
#define CLKS_PANIC_QR_URL_PREFIX "https://panic.archlinux.org/panic_report#?a=cleonos-x86_64&v=cleonos&z="
|
||||
#define CLKS_PANIC_QR_URL_PREFIX_LEN ((u64)(sizeof(CLKS_PANIC_QR_URL_PREFIX) - 1U))
|
||||
|
||||
#define CLKS_PANIC_QR_COLOR_DARK 0x00000000U
|
||||
#define CLKS_PANIC_QR_COLOR_LIGHT 0x00FFFFFFU
|
||||
|
||||
static char clks_panic_qr_lines[CLKS_PANIC_QR_MAX_LINES][CLKS_PANIC_QR_LINE_MAX];
|
||||
static u16 clks_panic_qr_line_len[CLKS_PANIC_QR_MAX_LINES];
|
||||
|
||||
static char clks_panic_qr_text[CLKS_PANIC_QR_TEXT_MAX];
|
||||
static u8 clks_panic_qr_comp[CLKS_PANIC_QR_COMP_MAX];
|
||||
static char clks_panic_qr_digits[CLKS_PANIC_QR_DIGITS_MAX];
|
||||
|
||||
static u8 clks_panic_qr_payload[qrcodegen_BUFFER_LEN_MAX];
|
||||
static u8 clks_panic_qr_code[qrcodegen_BUFFER_LEN_MAX];
|
||||
static u8 clks_panic_qr_url_seg_buf[qrcodegen_BUFFER_LEN_MAX];
|
||||
static u8 clks_panic_qr_num_seg_buf[qrcodegen_BUFFER_LEN_MAX];
|
||||
|
||||
static clks_bool clks_panic_qr_ready = CLKS_FALSE;
|
||||
static clks_bool clks_panic_qr_attempted = CLKS_FALSE;
|
||||
static u64 clks_panic_qr_total_lines_cache = 0ULL;
|
||||
static u64 clks_panic_qr_dropped_lines_cache = 0ULL;
|
||||
static u64 clks_panic_qr_comp_size_cache = 0ULL;
|
||||
static u64 clks_panic_qr_digits_size_cache = 0ULL;
|
||||
|
||||
static u64 clks_panic_qr_collect_lines(void) {
|
||||
u64 journal_count = clks_log_journal_count();
|
||||
u64 i;
|
||||
u64 line_count = 0ULL;
|
||||
|
||||
if (journal_count > CLKS_PANIC_QR_MAX_LINES) {
|
||||
journal_count = CLKS_PANIC_QR_MAX_LINES;
|
||||
}
|
||||
|
||||
for (i = 0ULL; i < journal_count; i++) {
|
||||
if (clks_log_journal_read(i, clks_panic_qr_lines[line_count], CLKS_PANIC_QR_LINE_MAX) == CLKS_TRUE) {
|
||||
clks_panic_qr_line_len[line_count] = (u16)clks_strlen(clks_panic_qr_lines[line_count]);
|
||||
line_count++;
|
||||
}
|
||||
}
|
||||
|
||||
return line_count;
|
||||
}
|
||||
|
||||
static u64 clks_panic_qr_build_text(u64 line_start, u64 line_count) {
|
||||
u64 i;
|
||||
u64 out_len = 0ULL;
|
||||
|
||||
if (line_start >= line_count) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
for (i = line_start; i < line_count; i++) {
|
||||
u64 len = (u64)clks_panic_qr_line_len[i];
|
||||
|
||||
if (out_len + len + 1ULL > CLKS_PANIC_QR_TEXT_MAX) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (len > 0ULL) {
|
||||
clks_memcpy(&clks_panic_qr_text[out_len], clks_panic_qr_lines[i], (usize)len);
|
||||
out_len += len;
|
||||
}
|
||||
|
||||
clks_panic_qr_text[out_len++] = '\n';
|
||||
}
|
||||
|
||||
return out_len;
|
||||
}
|
||||
|
||||
static clks_bool clks_panic_qr_compress(const char *src, u64 src_len, u8 *dst, u64 dst_cap, u64 *out_len) {
|
||||
tdefl_compressor comp;
|
||||
tdefl_status init_status;
|
||||
tdefl_status comp_status;
|
||||
size_t in_size;
|
||||
size_t out_size;
|
||||
mz_uint flags;
|
||||
|
||||
if (src == CLKS_NULL || dst == CLKS_NULL || out_len == CLKS_NULL || src_len == 0ULL || dst_cap == 0ULL) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
flags = tdefl_create_comp_flags_from_zip_params(6, 12, MZ_DEFAULT_STRATEGY);
|
||||
init_status = tdefl_init(&comp, (tdefl_put_buf_func_ptr)0, (void *)0, (int)flags);
|
||||
if (init_status < 0) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
in_size = (size_t)src_len;
|
||||
out_size = (size_t)dst_cap;
|
||||
comp_status = tdefl_compress(&comp, src, &in_size, dst, &out_size, TDEFL_FINISH);
|
||||
|
||||
if (comp_status != TDEFL_STATUS_DONE || in_size != (size_t)src_len) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
*out_len = (u64)out_size;
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
static void clks_panic_qr_u64_to_dec_padded(u64 value, u32 digits, char *out) {
|
||||
u32 i;
|
||||
|
||||
if (out == CLKS_NULL || digits == 0U) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0U; i < digits; i++) {
|
||||
out[digits - 1U - i] = (char)('0' + (value % 10ULL));
|
||||
value /= 10ULL;
|
||||
}
|
||||
}
|
||||
|
||||
static u64 clks_panic_qr_binary_to_decimal(const u8 *src, u64 src_len, char *dst, u64 dst_cap) {
|
||||
static const u8 tail_digits[7] = {0U, 3U, 5U, 8U, 10U, 13U, 15U};
|
||||
u64 in_pos = 0ULL;
|
||||
u64 out_pos = 0ULL;
|
||||
|
||||
if (src == CLKS_NULL || dst == CLKS_NULL || dst_cap == 0ULL) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
while (in_pos + 7ULL <= src_len) {
|
||||
u64 value = 0ULL;
|
||||
u32 i;
|
||||
|
||||
if (out_pos + 17ULL + 1ULL > dst_cap) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
for (i = 0U; i < 7U; i++) {
|
||||
value |= ((u64)src[in_pos + (u64)i]) << (i * 8U);
|
||||
}
|
||||
|
||||
clks_panic_qr_u64_to_dec_padded(value, 17U, &dst[out_pos]);
|
||||
out_pos += 17ULL;
|
||||
in_pos += 7ULL;
|
||||
}
|
||||
|
||||
if (in_pos < src_len) {
|
||||
u64 value = 0ULL;
|
||||
u64 rem = src_len - in_pos;
|
||||
u32 digits = tail_digits[rem];
|
||||
u32 i;
|
||||
|
||||
if (digits == 0U || out_pos + (u64)digits + 1ULL > dst_cap) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
for (i = 0U; i < (u32)rem; i++) {
|
||||
value |= ((u64)src[in_pos + (u64)i]) << (i * 8U);
|
||||
}
|
||||
|
||||
clks_panic_qr_u64_to_dec_padded(value, digits, &dst[out_pos]);
|
||||
out_pos += (u64)digits;
|
||||
}
|
||||
|
||||
dst[out_pos] = '\0';
|
||||
return out_pos;
|
||||
}
|
||||
|
||||
static clks_bool clks_panic_qr_encode_payload(const u8 *payload, u64 payload_size, u64 *digit_len_out) {
|
||||
struct qrcodegen_Segment segs[2];
|
||||
u64 digit_len;
|
||||
size_t url_seg_buf_len;
|
||||
size_t num_seg_buf_len;
|
||||
|
||||
if (payload == CLKS_NULL || payload_size == 0ULL || payload_size > CLKS_PANIC_QR_MAX_COMP_BYTES) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
digit_len = clks_panic_qr_binary_to_decimal(payload, payload_size, clks_panic_qr_digits, CLKS_PANIC_QR_DIGITS_MAX);
|
||||
if (digit_len == 0ULL) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
url_seg_buf_len = qrcodegen_calcSegmentBufferSize(qrcodegen_Mode_BYTE, (size_t)CLKS_PANIC_QR_URL_PREFIX_LEN);
|
||||
num_seg_buf_len = qrcodegen_calcSegmentBufferSize(qrcodegen_Mode_NUMERIC, (size_t)digit_len);
|
||||
if (url_seg_buf_len == (size_t)-1 || num_seg_buf_len == (size_t)-1 || url_seg_buf_len > qrcodegen_BUFFER_LEN_MAX ||
|
||||
num_seg_buf_len > qrcodegen_BUFFER_LEN_MAX) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
segs[0] = qrcodegen_makeBytes((const u8 *)CLKS_PANIC_QR_URL_PREFIX, (size_t)CLKS_PANIC_QR_URL_PREFIX_LEN,
|
||||
clks_panic_qr_url_seg_buf);
|
||||
segs[1] = qrcodegen_makeNumeric(clks_panic_qr_digits, clks_panic_qr_num_seg_buf);
|
||||
|
||||
if (qrcodegen_encodeSegmentsAdvanced(segs, 2U, qrcodegen_Ecc_LOW, qrcodegen_VERSION_MIN, qrcodegen_VERSION_MAX,
|
||||
qrcodegen_Mask_AUTO, true, clks_panic_qr_payload,
|
||||
clks_panic_qr_code) == false) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
if (digit_len_out != CLKS_NULL) {
|
||||
*digit_len_out = digit_len;
|
||||
}
|
||||
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
extern "C" clks_bool clks_panic_qr_prepare(void) {
|
||||
u64 line_count;
|
||||
u64 start;
|
||||
|
||||
if (clks_panic_qr_attempted == CLKS_TRUE) {
|
||||
return clks_panic_qr_ready;
|
||||
}
|
||||
|
||||
clks_panic_qr_attempted = CLKS_TRUE;
|
||||
clks_panic_qr_ready = CLKS_FALSE;
|
||||
clks_panic_qr_total_lines_cache = 0ULL;
|
||||
clks_panic_qr_dropped_lines_cache = 0ULL;
|
||||
clks_panic_qr_comp_size_cache = 0ULL;
|
||||
clks_panic_qr_digits_size_cache = 0ULL;
|
||||
|
||||
line_count = clks_panic_qr_collect_lines();
|
||||
clks_panic_qr_total_lines_cache = line_count;
|
||||
|
||||
if (line_count == 0ULL) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
for (start = 0ULL; start < line_count; start++) {
|
||||
u64 text_len = clks_panic_qr_build_text(start, line_count);
|
||||
u64 comp_len = 0ULL;
|
||||
u64 digit_len = 0ULL;
|
||||
|
||||
if (text_len == 0ULL) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (clks_panic_qr_compress(clks_panic_qr_text, text_len, clks_panic_qr_comp, CLKS_PANIC_QR_COMP_MAX,
|
||||
&comp_len) == CLKS_FALSE) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (comp_len > CLKS_PANIC_QR_MAX_COMP_BYTES) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (clks_panic_qr_encode_payload(clks_panic_qr_comp, comp_len, &digit_len) == CLKS_FALSE) {
|
||||
continue;
|
||||
}
|
||||
|
||||
clks_panic_qr_dropped_lines_cache = start;
|
||||
clks_panic_qr_comp_size_cache = comp_len;
|
||||
clks_panic_qr_digits_size_cache = digit_len;
|
||||
clks_panic_qr_ready = CLKS_TRUE;
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
extern "C" clks_bool clks_panic_qr_show(void) {
|
||||
struct clks_framebuffer_info fb_info;
|
||||
int qr_size;
|
||||
u32 modules;
|
||||
u32 scale;
|
||||
u32 draw_w;
|
||||
u32 draw_h;
|
||||
u32 base_x;
|
||||
u32 base_y;
|
||||
u32 y;
|
||||
u32 x;
|
||||
|
||||
if (clks_panic_qr_ready == CLKS_FALSE) {
|
||||
if (clks_panic_qr_prepare() == CLKS_FALSE) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if (clks_fb_ready() == CLKS_FALSE) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
qr_size = qrcodegen_getSize(clks_panic_qr_code);
|
||||
if (qr_size <= 0) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
fb_info = clks_fb_info();
|
||||
modules = (u32)qr_size + (CLKS_PANIC_QR_BORDER * 2U);
|
||||
if (modules == 0U) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
scale = fb_info.width / modules;
|
||||
if ((fb_info.height / modules) < scale) {
|
||||
scale = fb_info.height / modules;
|
||||
}
|
||||
|
||||
if (scale == 0U) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
draw_w = modules * scale;
|
||||
draw_h = modules * scale;
|
||||
base_x = (fb_info.width > draw_w) ? ((fb_info.width - draw_w) / 2U) : 0U;
|
||||
base_y = (fb_info.height > draw_h) ? ((fb_info.height - draw_h) / 2U) : 0U;
|
||||
|
||||
clks_fb_clear(CLKS_PANIC_QR_COLOR_LIGHT);
|
||||
|
||||
for (y = 0U; y < modules; y++) {
|
||||
for (x = 0U; x < modules; x++) {
|
||||
int qx = (int)x - (int)CLKS_PANIC_QR_BORDER;
|
||||
int qy = (int)y - (int)CLKS_PANIC_QR_BORDER;
|
||||
clks_bool dark = CLKS_FALSE;
|
||||
|
||||
if (qx >= 0 && qy >= 0 && qx < qr_size && qy < qr_size) {
|
||||
dark = qrcodegen_getModule(clks_panic_qr_code, qx, qy) ? CLKS_TRUE : CLKS_FALSE;
|
||||
}
|
||||
|
||||
if (dark == CLKS_TRUE) {
|
||||
clks_fb_fill_rect(base_x + (x * scale), base_y + (y * scale), scale, scale, CLKS_PANIC_QR_COLOR_DARK);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
clks_serial_write("[PANIC][QR] LINES:");
|
||||
{
|
||||
char hex_buf[19];
|
||||
clks_serial_write(" TOTAL=");
|
||||
clks_memset(hex_buf, 0, sizeof(hex_buf));
|
||||
hex_buf[0] = '0';
|
||||
hex_buf[1] = 'X';
|
||||
for (int i = 0; i < 16; i++) {
|
||||
u8 n = (u8)((clks_panic_qr_total_lines_cache >> ((15 - i) * 4)) & 0x0FULL);
|
||||
hex_buf[2 + i] = (n < 10U) ? (char)('0' + n) : (char)('A' + (n - 10U));
|
||||
}
|
||||
clks_serial_write(hex_buf);
|
||||
|
||||
clks_serial_write(" DROPPED=");
|
||||
for (int i = 0; i < 16; i++) {
|
||||
u8 n = (u8)((clks_panic_qr_dropped_lines_cache >> ((15 - i) * 4)) & 0x0FULL);
|
||||
hex_buf[2 + i] = (n < 10U) ? (char)('0' + n) : (char)('A' + (n - 10U));
|
||||
}
|
||||
clks_serial_write(hex_buf);
|
||||
|
||||
clks_serial_write(" COMP_BYTES=");
|
||||
for (int i = 0; i < 16; i++) {
|
||||
u8 n = (u8)((clks_panic_qr_comp_size_cache >> ((15 - i) * 4)) & 0x0FULL);
|
||||
hex_buf[2 + i] = (n < 10U) ? (char)('0' + n) : (char)('A' + (n - 10U));
|
||||
}
|
||||
clks_serial_write(hex_buf);
|
||||
clks_serial_write(" DIGITS=");
|
||||
for (int i = 0; i < 16; i++) {
|
||||
u8 n = (u8)((clks_panic_qr_digits_size_cache >> ((15 - i) * 4)) & 0x0FULL);
|
||||
hex_buf[2 + i] = (n < 10U) ? (char)('0' + n) : (char)('A' + (n - 10U));
|
||||
}
|
||||
clks_serial_write(hex_buf);
|
||||
clks_serial_write("\n");
|
||||
}
|
||||
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
extern "C" u64 clks_panic_qr_total_lines(void) {
|
||||
return clks_panic_qr_total_lines_cache;
|
||||
}
|
||||
|
||||
extern "C" u64 clks_panic_qr_dropped_lines(void) {
|
||||
return clks_panic_qr_dropped_lines_cache;
|
||||
}
|
||||
@@ -46,7 +46,9 @@ static u64 clks_shell_cmd_unknown = 0ULL;
|
||||
static clks_bool clks_shell_pending_command = CLKS_FALSE;
|
||||
static char clks_shell_pending_line[CLKS_SHELL_LINE_MAX];
|
||||
|
||||
extern void clks_rusttest_hello(void);
|
||||
__attribute__((weak)) void clks_rusttest_hello(void) {
|
||||
clks_tty_write("rusttest: rust symbol unavailable\n");
|
||||
}
|
||||
|
||||
static clks_bool clks_shell_is_space(char ch) {
|
||||
return (ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n') ? CLKS_TRUE : CLKS_FALSE;
|
||||
@@ -2,7 +2,11 @@
|
||||
#include <clks/string.h>
|
||||
#include <clks/types.h>
|
||||
|
||||
#define CLKS_HEAP_ARENA_SIZE (1024ULL * 1024ULL)
|
||||
#ifndef CLKS_CFG_HEAP_ARENA_SIZE
|
||||
#define CLKS_CFG_HEAP_ARENA_SIZE (64ULL * 1024ULL * 1024ULL)
|
||||
#endif
|
||||
|
||||
#define CLKS_HEAP_ARENA_SIZE CLKS_CFG_HEAP_ARENA_SIZE
|
||||
#define CLKS_HEAP_ALIGN 16ULL
|
||||
#define CLKS_HEAP_MAGIC 0x434C454F4E4F534FULL
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#include <clks/elf64.h>
|
||||
#include <clks/heap.h>
|
||||
#include <clks/log.h>
|
||||
#include <clks/string.h>
|
||||
#include <clks/types.h>
|
||||
|
||||
@@ -17,6 +18,8 @@
|
||||
|
||||
#define CLKS_ELF64_EM_X86_64 62U
|
||||
|
||||
#define CLKS_ELF64_PF_X 0x1U
|
||||
|
||||
struct clks_elf64_ehdr {
|
||||
u8 e_ident[16];
|
||||
u16 e_type;
|
||||
@@ -90,6 +93,42 @@ static clks_bool clks_elf64_range_ok(u64 off, u64 len, u64 total) {
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
static void clks_elf64_rebase_exec_pointers(struct clks_elf64_loaded_image *loaded, u64 old_base, u64 old_end,
|
||||
u64 delta) {
|
||||
u16 seg_index;
|
||||
|
||||
if (loaded == CLKS_NULL || delta == 0ULL || old_end <= old_base) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (seg_index = 0U; seg_index < loaded->segment_count; seg_index++) {
|
||||
struct clks_elf64_loaded_segment *seg = &loaded->segments[seg_index];
|
||||
u64 scan_len;
|
||||
u64 off;
|
||||
|
||||
/* Skip executable segments to avoid patching instruction bytes. */
|
||||
if ((seg->flags & CLKS_ELF64_PF_X) != 0U) {
|
||||
continue;
|
||||
}
|
||||
|
||||
scan_len = seg->filesz;
|
||||
if (scan_len < sizeof(u64)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
scan_len -= (scan_len % sizeof(u64));
|
||||
|
||||
for (off = 0ULL; off < scan_len; off += sizeof(u64)) {
|
||||
u64 *slot = (u64 *)((u8 *)seg->base + (usize)off);
|
||||
u64 value = *slot;
|
||||
|
||||
if (value >= old_base && value < old_end) {
|
||||
*slot = value + delta;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
clks_bool clks_elf64_validate(const void *image, u64 size) {
|
||||
const struct clks_elf64_ehdr *eh;
|
||||
u64 ph_table_size;
|
||||
@@ -230,6 +269,10 @@ clks_bool clks_elf64_load(const void *image, u64 size, struct clks_elf64_loaded_
|
||||
|
||||
image_base = clks_kmalloc((usize)span);
|
||||
if (image_base == CLKS_NULL) {
|
||||
clks_log(CLKS_LOG_WARN, "ELF", "LOAD ALLOC FAILED");
|
||||
clks_log_hex(CLKS_LOG_WARN, "ELF", "SPAN", span);
|
||||
clks_log_hex(CLKS_LOG_WARN, "ELF", "MIN_VADDR", min_vaddr);
|
||||
clks_log_hex(CLKS_LOG_WARN, "ELF", "MAX_VADDR_END", max_vaddr_end);
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
@@ -273,6 +316,17 @@ clks_bool clks_elf64_load(const void *image, u64 size, struct clks_elf64_loaded_
|
||||
out_loaded->segment_count++;
|
||||
}
|
||||
|
||||
if (eh->e_type == CLKS_ELF64_ET_EXEC) {
|
||||
u64 new_base = (u64)(usize)image_base;
|
||||
u64 old_base = min_vaddr;
|
||||
u64 old_end = max_vaddr_end;
|
||||
|
||||
if (new_base != old_base) {
|
||||
u64 delta = new_base - old_base;
|
||||
clks_elf64_rebase_exec_pointers(out_loaded, old_base, old_end, delta);
|
||||
}
|
||||
}
|
||||
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
typedef u64 (*clks_exec_entry_fn)(void);
|
||||
|
||||
#define CLKS_EXEC_RUN_STACK_BYTES (64ULL * 1024ULL)
|
||||
#define CLKS_EXEC_RUN_STACK_BYTES (1024ULL * 1024ULL)
|
||||
#define CLKS_EXEC_MAX_PROCS 64U
|
||||
#define CLKS_EXEC_MAX_DEPTH 16U
|
||||
#define CLKS_EXEC_PATH_MAX 192U
|
||||
@@ -160,6 +160,11 @@ struct clks_exec_dynlib_slot {
|
||||
#if defined(CLKS_ARCH_X86_64)
|
||||
extern u64 clks_exec_call_on_stack_x86_64(void *entry_ptr, void *stack_top);
|
||||
extern void clks_exec_abort_to_caller_x86_64(void);
|
||||
static u64 clks_exec_read_cr2(void) {
|
||||
u64 value = 0ULL;
|
||||
__asm__ volatile("mov %%cr2, %0" : "=r"(value));
|
||||
return value;
|
||||
}
|
||||
#endif
|
||||
|
||||
static u64 clks_exec_requests = 0ULL;
|
||||
@@ -178,6 +183,10 @@ static u64 clks_exec_unwind_slot_stack[CLKS_EXEC_MAX_DEPTH];
|
||||
static clks_bool clks_exec_unwind_slot_valid_stack[CLKS_EXEC_MAX_DEPTH];
|
||||
static u64 clks_exec_image_begin_stack[CLKS_EXEC_MAX_DEPTH];
|
||||
static u64 clks_exec_image_end_stack[CLKS_EXEC_MAX_DEPTH];
|
||||
static u64 clks_exec_image_vaddr_begin_stack[CLKS_EXEC_MAX_DEPTH];
|
||||
static u64 clks_exec_image_vaddr_end_stack[CLKS_EXEC_MAX_DEPTH];
|
||||
static u64 clks_exec_stack_begin_stack[CLKS_EXEC_MAX_DEPTH];
|
||||
static u64 clks_exec_stack_end_stack[CLKS_EXEC_MAX_DEPTH];
|
||||
static u32 clks_exec_pid_stack_depth = 0U;
|
||||
static struct clks_exec_dynlib_slot clks_exec_dynlib_table[CLKS_EXEC_DYNLIB_MAX];
|
||||
static u64 clks_exec_next_dynlib_handle = 1ULL;
|
||||
@@ -315,6 +324,89 @@ static clks_bool clks_exec_rip_is_current_user_context(u64 rip) {
|
||||
return (rip >= image_begin && rip < image_end) ? CLKS_TRUE : CLKS_FALSE;
|
||||
}
|
||||
|
||||
static clks_bool clks_exec_translate_legacy_user_rip(u64 rip, u64 *out_rip) {
|
||||
i32 depth_index;
|
||||
u64 vaddr_begin;
|
||||
u64 vaddr_end;
|
||||
u64 image_begin;
|
||||
u64 image_end;
|
||||
u64 off;
|
||||
u64 translated;
|
||||
|
||||
if (out_rip == CLKS_NULL || clks_exec_pid_stack_depth == 0U) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
depth_index = (i32)(clks_exec_pid_stack_depth - 1U);
|
||||
vaddr_begin = clks_exec_image_vaddr_begin_stack[(u32)depth_index];
|
||||
vaddr_end = clks_exec_image_vaddr_end_stack[(u32)depth_index];
|
||||
image_begin = clks_exec_image_begin_stack[(u32)depth_index];
|
||||
image_end = clks_exec_image_end_stack[(u32)depth_index];
|
||||
|
||||
if (vaddr_begin == 0ULL || vaddr_end <= vaddr_begin || image_begin == 0ULL || image_end <= image_begin) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
if (rip < vaddr_begin || rip >= vaddr_end) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
off = rip - vaddr_begin;
|
||||
|
||||
if (off >= (image_end - image_begin)) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
translated = image_begin + off;
|
||||
if (translated < image_begin || translated >= image_end) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
*out_rip = translated;
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
static clks_bool clks_exec_translate_loaded_user_rip_to_vaddr(u64 rip, u64 *out_rip) {
|
||||
i32 depth_index;
|
||||
u64 vaddr_begin;
|
||||
u64 vaddr_end;
|
||||
u64 image_begin;
|
||||
u64 image_end;
|
||||
u64 off;
|
||||
u64 translated;
|
||||
|
||||
if (out_rip == CLKS_NULL || clks_exec_pid_stack_depth == 0U) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
depth_index = (i32)(clks_exec_pid_stack_depth - 1U);
|
||||
vaddr_begin = clks_exec_image_vaddr_begin_stack[(u32)depth_index];
|
||||
vaddr_end = clks_exec_image_vaddr_end_stack[(u32)depth_index];
|
||||
image_begin = clks_exec_image_begin_stack[(u32)depth_index];
|
||||
image_end = clks_exec_image_end_stack[(u32)depth_index];
|
||||
|
||||
if (vaddr_begin == 0ULL || vaddr_end <= vaddr_begin || image_begin == 0ULL || image_end <= image_begin) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
if (rip < image_begin || rip >= image_end) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
off = rip - image_begin;
|
||||
if (off >= (vaddr_end - vaddr_begin)) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
translated = vaddr_begin + off;
|
||||
if (translated < vaddr_begin || translated >= vaddr_end) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
*out_rip = translated;
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
static void clks_exec_copy_path(char *dst, usize dst_size, const char *src) {
|
||||
usize i = 0U;
|
||||
|
||||
@@ -362,6 +454,26 @@ static clks_bool clks_exec_range_ok(u64 off, u64 len, u64 total) {
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
static clks_bool clks_exec_addr_range_in_window(u64 addr, u64 size, u64 begin, u64 end) {
|
||||
if (begin == 0ULL || end <= begin) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
if (size == 0ULL) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
if (addr < begin || addr >= end) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
if (size > (end - addr)) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
static i32 clks_exec_dynlib_alloc_slot(void) {
|
||||
u32 i;
|
||||
|
||||
@@ -724,6 +836,41 @@ static u64 clks_exec_encode_signal_status(u64 signal, u64 vector, u64 error_code
|
||||
((error_code & 0xFFFFULL) << 16);
|
||||
}
|
||||
|
||||
static clks_bool clks_exec_status_is_signal(u64 status) {
|
||||
return ((status & CLKS_EXEC_STATUS_SIGNAL_FLAG) != 0ULL) ? CLKS_TRUE : CLKS_FALSE;
|
||||
}
|
||||
|
||||
static u64 clks_exec_status_signal(u64 status) {
|
||||
return status & 0xFFULL;
|
||||
}
|
||||
|
||||
static u64 clks_exec_status_vector(u64 status) {
|
||||
return (status >> 8) & 0xFFULL;
|
||||
}
|
||||
|
||||
static u64 clks_exec_status_error(u64 status) {
|
||||
return (status >> 16) & 0xFFFFULL;
|
||||
}
|
||||
|
||||
static clks_bool clks_exec_status_is_user_terminated(u64 status) {
|
||||
u64 signal;
|
||||
|
||||
if (clks_exec_status_is_signal(status) == CLKS_FALSE) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
if (clks_exec_status_vector(status) != 0ULL || clks_exec_status_error(status) != 0ULL) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
signal = clks_exec_status_signal(status);
|
||||
if (signal == CLKS_EXEC_SIGNAL_TERM || signal == CLKS_EXEC_SIGNAL_KILL || signal == CLKS_EXEC_SIGNAL_STOP) {
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
static i32 clks_exec_proc_find_slot_by_pid(u64 pid) {
|
||||
u32 i;
|
||||
|
||||
@@ -1179,6 +1326,8 @@ static clks_bool clks_exec_invoke_entry(void *entry_ptr, u32 depth_index, u64 *o
|
||||
}
|
||||
|
||||
stack_top = (void *)((u8 *)stack_base + (usize)CLKS_EXEC_RUN_STACK_BYTES);
|
||||
clks_exec_stack_begin_stack[depth_index] = (u64)stack_base;
|
||||
clks_exec_stack_end_stack[depth_index] = (u64)stack_top;
|
||||
unwind_slot = (((u64)stack_top) & ~0xFULL) - CLKS_EXEC_UNWIND_CTX_BYTES;
|
||||
clks_exec_unwind_slot_stack[depth_index] = unwind_slot;
|
||||
clks_exec_unwind_slot_valid_stack[depth_index] = CLKS_TRUE;
|
||||
@@ -1192,6 +1341,8 @@ static clks_bool clks_exec_invoke_entry(void *entry_ptr, u32 depth_index, u64 *o
|
||||
/* Close unwind window immediately after call returns to avoid IRQ race. */
|
||||
clks_exec_unwind_slot_valid_stack[depth_index] = CLKS_FALSE;
|
||||
clks_exec_unwind_slot_stack[depth_index] = 0ULL;
|
||||
clks_exec_stack_begin_stack[depth_index] = 0ULL;
|
||||
clks_exec_stack_end_stack[depth_index] = 0ULL;
|
||||
|
||||
clks_exec_restore_interrupt_window(restore_irq_disable);
|
||||
*out_ret = call_ret;
|
||||
@@ -1254,6 +1405,10 @@ static clks_bool clks_exec_run_proc_slot(i32 slot, u64 *out_status) {
|
||||
clks_exec_stop_requested_stack[(u32)depth_index] = CLKS_FALSE;
|
||||
clks_exec_image_begin_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_image_end_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_image_vaddr_begin_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_image_vaddr_end_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_stack_begin_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_stack_end_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_pid_stack_depth++;
|
||||
depth_pushed = CLKS_TRUE;
|
||||
|
||||
@@ -1300,12 +1455,17 @@ static clks_bool clks_exec_run_proc_slot(i32 slot, u64 *out_status) {
|
||||
|
||||
clks_exec_image_begin_stack[(u32)depth_index] = image_begin;
|
||||
clks_exec_image_end_stack[(u32)depth_index] = image_end;
|
||||
clks_exec_image_vaddr_begin_stack[(u32)depth_index] = loaded.image_vaddr_base;
|
||||
clks_exec_image_vaddr_end_stack[(u32)depth_index] = loaded.image_vaddr_base + loaded.image_size;
|
||||
}
|
||||
|
||||
clks_exec_log_info_serial("EXEC RUN START");
|
||||
clks_exec_log_info_serial(proc->path);
|
||||
clks_exec_log_hex_serial("ENTRY", info.entry);
|
||||
clks_exec_log_hex_serial("PHNUM", (u64)info.phnum);
|
||||
clks_exec_log_hex_serial("IMAGE_BASE", (u64)loaded.image_base);
|
||||
clks_exec_log_hex_serial("IMAGE_SIZE", loaded.image_size);
|
||||
clks_exec_log_hex_serial("VADDR_BASE", loaded.image_vaddr_base);
|
||||
|
||||
clks_exec_running_depth++;
|
||||
depth_counted = CLKS_TRUE;
|
||||
@@ -1328,6 +1488,12 @@ static clks_bool clks_exec_run_proc_slot(i32 slot, u64 *out_status) {
|
||||
clks_exec_log_info_serial("RUN RETURNED");
|
||||
clks_exec_log_info_serial(proc->path);
|
||||
clks_exec_log_hex_serial("RET", run_ret);
|
||||
if (clks_exec_status_is_user_terminated(run_ret) == CLKS_TRUE) {
|
||||
clks_exec_log_info_serial("TERMINATED BY USER");
|
||||
clks_exec_log_info_serial(proc->path);
|
||||
clks_exec_log_hex_serial("PID", proc->pid);
|
||||
clks_exec_log_hex_serial("SIGNAL", clks_exec_status_signal(run_ret));
|
||||
}
|
||||
|
||||
clks_exec_success++;
|
||||
if (clks_exec_stop_requested_stack[(u32)depth_index] == CLKS_TRUE) {
|
||||
@@ -1348,6 +1514,10 @@ static clks_bool clks_exec_run_proc_slot(i32 slot, u64 *out_status) {
|
||||
clks_exec_stop_requested_stack[(u32)depth_index] = CLKS_FALSE;
|
||||
clks_exec_image_begin_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_image_end_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_image_vaddr_begin_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_image_vaddr_end_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_stack_begin_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_stack_end_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_pid_stack_depth--;
|
||||
depth_pushed = CLKS_FALSE;
|
||||
}
|
||||
@@ -1374,6 +1544,10 @@ fail:
|
||||
clks_exec_stop_requested_stack[(u32)depth_index] = CLKS_FALSE;
|
||||
clks_exec_image_begin_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_image_end_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_image_vaddr_begin_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_image_vaddr_end_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_stack_begin_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_stack_end_stack[(u32)depth_index] = 0ULL;
|
||||
clks_exec_pid_stack_depth--;
|
||||
}
|
||||
|
||||
@@ -1484,6 +1658,10 @@ void clks_exec_init(void) {
|
||||
clks_memset(clks_exec_unwind_slot_valid_stack, 0, sizeof(clks_exec_unwind_slot_valid_stack));
|
||||
clks_memset(clks_exec_image_begin_stack, 0, sizeof(clks_exec_image_begin_stack));
|
||||
clks_memset(clks_exec_image_end_stack, 0, sizeof(clks_exec_image_end_stack));
|
||||
clks_memset(clks_exec_image_vaddr_begin_stack, 0, sizeof(clks_exec_image_vaddr_begin_stack));
|
||||
clks_memset(clks_exec_image_vaddr_end_stack, 0, sizeof(clks_exec_image_vaddr_end_stack));
|
||||
clks_memset(clks_exec_stack_begin_stack, 0, sizeof(clks_exec_stack_begin_stack));
|
||||
clks_memset(clks_exec_stack_end_stack, 0, sizeof(clks_exec_stack_end_stack));
|
||||
clks_memset(clks_exec_proc_table, 0, sizeof(clks_exec_proc_table));
|
||||
clks_memset(clks_exec_dynlib_table, 0, sizeof(clks_exec_dynlib_table));
|
||||
clks_exec_next_dynlib_handle = 1ULL;
|
||||
@@ -2271,6 +2449,13 @@ u64 clks_exec_proc_kill(u64 pid, u64 signal) {
|
||||
|
||||
if (proc->state == CLKS_EXEC_PROC_PENDING || proc->state == CLKS_EXEC_PROC_STOPPED) {
|
||||
clks_exec_proc_mark_exited(proc, now_tick, status);
|
||||
if (effective_signal == CLKS_EXEC_SIGNAL_TERM || effective_signal == CLKS_EXEC_SIGNAL_KILL ||
|
||||
effective_signal == CLKS_EXEC_SIGNAL_STOP) {
|
||||
clks_exec_log_info_serial("TERMINATED BY USER");
|
||||
clks_exec_log_info_serial(proc->path);
|
||||
clks_exec_log_hex_serial("PID", proc->pid);
|
||||
clks_exec_log_hex_serial("SIGNAL", effective_signal);
|
||||
}
|
||||
return 1ULL;
|
||||
}
|
||||
|
||||
@@ -2419,6 +2604,20 @@ clks_bool clks_exec_handle_exception(u64 vector, u64 error_code, u64 rip, u64 *i
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
#if defined(CLKS_ARCH_X86_64)
|
||||
if (vector == 14ULL && (error_code & 0x10ULL) != 0ULL && io_rip != CLKS_NULL) {
|
||||
u64 translated_rip = 0ULL;
|
||||
|
||||
if (clks_exec_translate_legacy_user_rip(rip, &translated_rip) == CLKS_TRUE) {
|
||||
*io_rip = translated_rip;
|
||||
clks_exec_log_info_serial("USER RIP LEGACY REBASE");
|
||||
clks_exec_log_hex_serial("RIP_OLD", rip);
|
||||
clks_exec_log_hex_serial("RIP_NEW", translated_rip);
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
signal = clks_exec_signal_from_vector(vector);
|
||||
status = clks_exec_encode_signal_status(signal, vector, error_code);
|
||||
|
||||
@@ -2437,6 +2636,17 @@ clks_bool clks_exec_handle_exception(u64 vector, u64 error_code, u64 rip, u64 *i
|
||||
clks_exec_log_hex_serial("VECTOR", vector);
|
||||
clks_exec_log_hex_serial("ERROR", error_code);
|
||||
clks_exec_log_hex_serial("RIP", rip);
|
||||
{
|
||||
u64 rip_vaddr = 0ULL;
|
||||
if (clks_exec_translate_loaded_user_rip_to_vaddr(rip, &rip_vaddr) == CLKS_TRUE) {
|
||||
clks_exec_log_hex_serial("RIP_VADDR", rip_vaddr);
|
||||
}
|
||||
}
|
||||
#if defined(CLKS_ARCH_X86_64)
|
||||
if (vector == 14ULL) {
|
||||
clks_exec_log_hex_serial("CR2", clks_exec_read_cr2());
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CLKS_ARCH_X86_64)
|
||||
if (io_rip == CLKS_NULL || io_rdi == CLKS_NULL || io_rsi == CLKS_NULL) {
|
||||
@@ -2526,3 +2736,39 @@ clks_bool clks_exec_current_path_is_user(void) {
|
||||
proc = &clks_exec_proc_table[(u32)slot];
|
||||
return clks_exec_path_is_user_program(proc->path);
|
||||
}
|
||||
|
||||
clks_bool clks_exec_current_user_ptr_readable(u64 addr, u64 size) {
|
||||
i32 depth_index;
|
||||
u64 image_begin;
|
||||
u64 image_end;
|
||||
u64 stack_begin;
|
||||
u64 stack_end;
|
||||
|
||||
if (clks_exec_is_running() == CLKS_FALSE || clks_exec_current_path_is_user() == CLKS_FALSE) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
if (size == 0ULL || clks_exec_pid_stack_depth == 0U) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
depth_index = (i32)(clks_exec_pid_stack_depth - 1U);
|
||||
image_begin = clks_exec_image_begin_stack[(u32)depth_index];
|
||||
image_end = clks_exec_image_end_stack[(u32)depth_index];
|
||||
stack_begin = clks_exec_stack_begin_stack[(u32)depth_index];
|
||||
stack_end = clks_exec_stack_end_stack[(u32)depth_index];
|
||||
|
||||
if (clks_exec_addr_range_in_window(addr, size, image_begin, image_end) == CLKS_TRUE) {
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
if (clks_exec_addr_range_in_window(addr, size, stack_begin, stack_end) == CLKS_TRUE) {
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
clks_bool clks_exec_current_user_ptr_writable(u64 addr, u64 size) {
|
||||
return clks_exec_current_user_ptr_readable(addr, size);
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
#include <clks/cpu.h>
|
||||
#include <clks/audio.h>
|
||||
#include <clks/exec.h>
|
||||
#include <clks/framebuffer.h>
|
||||
#include <clks/fs.h>
|
||||
#include <clks/heap.h>
|
||||
#include <clks/interrupts.h>
|
||||
@@ -15,6 +16,7 @@
|
||||
#include <clks/tty.h>
|
||||
#include <clks/types.h>
|
||||
#include <clks/userland.h>
|
||||
#include <cleonos_version.h>
|
||||
|
||||
#define CLKS_SYSCALL_LOG_MAX_LEN 191U
|
||||
#define CLKS_SYSCALL_PATH_MAX 192U
|
||||
@@ -32,13 +34,66 @@
|
||||
#define CLKS_SYSCALL_KDBG_STACK_WINDOW_BYTES (128ULL * 1024ULL)
|
||||
#define CLKS_SYSCALL_KERNEL_SYMBOL_FILE "/system/kernel.sym"
|
||||
#define CLKS_SYSCALL_KERNEL_ADDR_BASE 0xFFFF800000000000ULL
|
||||
#define CLKS_SYSCALL_STATS_MAX_ID CLKS_SYSCALL_EXEC_PATHV_IO
|
||||
#define CLKS_SYSCALL_STATS_MAX_ID CLKS_SYSCALL_KERNEL_VERSION
|
||||
#define CLKS_SYSCALL_STATS_RING_SIZE 256U
|
||||
#define CLKS_SYSCALL_USC_MAX_ALLOWED_APPS 64U
|
||||
|
||||
#ifndef CLKS_CFG_PROCFS
|
||||
#define CLKS_CFG_PROCFS 1
|
||||
#endif
|
||||
|
||||
#ifndef CLKS_CFG_USC
|
||||
#define CLKS_CFG_USC 1
|
||||
#endif
|
||||
|
||||
#ifndef CLKS_CFG_USC_SC_FS_MKDIR
|
||||
#define CLKS_CFG_USC_SC_FS_MKDIR 1
|
||||
#endif
|
||||
|
||||
#ifndef CLKS_CFG_USC_SC_FS_WRITE
|
||||
#define CLKS_CFG_USC_SC_FS_WRITE 1
|
||||
#endif
|
||||
|
||||
#ifndef CLKS_CFG_USC_SC_FS_APPEND
|
||||
#define CLKS_CFG_USC_SC_FS_APPEND 1
|
||||
#endif
|
||||
|
||||
#ifndef CLKS_CFG_USC_SC_FS_REMOVE
|
||||
#define CLKS_CFG_USC_SC_FS_REMOVE 1
|
||||
#endif
|
||||
|
||||
#ifndef CLKS_CFG_USC_SC_EXEC_PATH
|
||||
#define CLKS_CFG_USC_SC_EXEC_PATH 1
|
||||
#endif
|
||||
|
||||
#ifndef CLKS_CFG_USC_SC_EXEC_PATHV
|
||||
#define CLKS_CFG_USC_SC_EXEC_PATHV 1
|
||||
#endif
|
||||
|
||||
#ifndef CLKS_CFG_USC_SC_EXEC_PATHV_IO
|
||||
#define CLKS_CFG_USC_SC_EXEC_PATHV_IO 1
|
||||
#endif
|
||||
|
||||
#ifndef CLKS_CFG_USC_SC_SPAWN_PATH
|
||||
#define CLKS_CFG_USC_SC_SPAWN_PATH 1
|
||||
#endif
|
||||
|
||||
#ifndef CLKS_CFG_USC_SC_SPAWN_PATHV
|
||||
#define CLKS_CFG_USC_SC_SPAWN_PATHV 1
|
||||
#endif
|
||||
|
||||
#ifndef CLKS_CFG_USC_SC_PROC_KILL
|
||||
#define CLKS_CFG_USC_SC_PROC_KILL 1
|
||||
#endif
|
||||
|
||||
#ifndef CLKS_CFG_USC_SC_SHUTDOWN
|
||||
#define CLKS_CFG_USC_SC_SHUTDOWN 1
|
||||
#endif
|
||||
|
||||
#ifndef CLKS_CFG_USC_SC_RESTART
|
||||
#define CLKS_CFG_USC_SC_RESTART 1
|
||||
#endif
|
||||
|
||||
struct clks_syscall_frame {
|
||||
u64 rax;
|
||||
u64 rbx;
|
||||
@@ -78,6 +133,23 @@ struct clks_syscall_exec_io_req {
|
||||
u64 stderr_fd;
|
||||
};
|
||||
|
||||
struct clks_syscall_fb_info_user {
|
||||
u64 width;
|
||||
u64 height;
|
||||
u64 pitch;
|
||||
u64 bpp;
|
||||
};
|
||||
|
||||
struct clks_syscall_fb_blit_req {
|
||||
u64 pixels_ptr;
|
||||
u64 src_width;
|
||||
u64 src_height;
|
||||
u64 src_pitch_bytes;
|
||||
u64 dst_x;
|
||||
u64 dst_y;
|
||||
u64 scale;
|
||||
};
|
||||
|
||||
static clks_bool clks_syscall_ready = CLKS_FALSE;
|
||||
static clks_bool clks_syscall_user_trace_active = CLKS_FALSE;
|
||||
static u64 clks_syscall_user_trace_budget = 0ULL;
|
||||
@@ -92,6 +164,10 @@ static u64 clks_syscall_stats_recent_id_count[CLKS_SYSCALL_STATS_MAX_ID + 1ULL];
|
||||
static u16 clks_syscall_stats_recent_ring[CLKS_SYSCALL_STATS_RING_SIZE];
|
||||
static u32 clks_syscall_stats_recent_head = 0U;
|
||||
static u32 clks_syscall_stats_recent_size = 0U;
|
||||
#if CLKS_CFG_USC != 0
|
||||
static clks_bool clks_syscall_usc_allowed_used[CLKS_SYSCALL_USC_MAX_ALLOWED_APPS];
|
||||
static char clks_syscall_usc_allowed_path[CLKS_SYSCALL_USC_MAX_ALLOWED_APPS][CLKS_EXEC_PROC_PATH_MAX];
|
||||
#endif
|
||||
|
||||
#if defined(CLKS_ARCH_X86_64)
|
||||
static inline void clks_syscall_outb(u16 port, u8 value) {
|
||||
@@ -103,16 +179,55 @@ static inline void clks_syscall_outw(u16 port, u16 value) {
|
||||
}
|
||||
#endif
|
||||
|
||||
static clks_bool clks_syscall_in_user_exec_context(void) {
|
||||
return (clks_exec_is_running() == CLKS_TRUE && clks_exec_current_path_is_user() == CLKS_TRUE) ? CLKS_TRUE
|
||||
: CLKS_FALSE;
|
||||
}
|
||||
|
||||
static clks_bool clks_syscall_user_ptr_readable(u64 addr, u64 size) {
|
||||
if (addr == 0ULL || size == 0ULL) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
if (clks_syscall_in_user_exec_context() == CLKS_FALSE) {
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
return clks_exec_current_user_ptr_readable(addr, size);
|
||||
}
|
||||
|
||||
static clks_bool clks_syscall_user_ptr_writable(u64 addr, u64 size) {
|
||||
if (addr == 0ULL || size == 0ULL) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
if (clks_syscall_in_user_exec_context() == CLKS_FALSE) {
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
return clks_exec_current_user_ptr_writable(addr, size);
|
||||
}
|
||||
|
||||
static clks_bool clks_syscall_copy_user_string(u64 src_addr, char *dst, usize dst_size) {
|
||||
const char *src = (const char *)src_addr;
|
||||
usize i = 0U;
|
||||
|
||||
if (src == CLKS_NULL || dst == CLKS_NULL || dst_size == 0U) {
|
||||
if (src_addr == 0ULL || dst == CLKS_NULL || dst_size == 0U) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
while (i + 1U < dst_size) {
|
||||
char ch = src[i];
|
||||
u64 char_addr = src_addr + (u64)i;
|
||||
char ch;
|
||||
|
||||
if (char_addr < src_addr) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_readable(char_addr, 1ULL) == CLKS_FALSE) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
ch = *(const char *)(usize)char_addr;
|
||||
dst[i] = ch;
|
||||
|
||||
if (ch == '\0') {
|
||||
@@ -152,6 +267,10 @@ static u64 clks_syscall_copy_text_to_user(u64 dst_addr, u64 dst_size, const char
|
||||
copy_len = (usize)dst_size - 1U;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_writable(dst_addr, (u64)copy_len + 1ULL) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
clks_memcpy((void *)dst_addr, src, copy_len);
|
||||
((char *)dst_addr)[copy_len] = '\0';
|
||||
return (u64)copy_len;
|
||||
@@ -171,6 +290,10 @@ static u64 clks_syscall_log_write(u64 arg0, u64 arg1) {
|
||||
len = CLKS_SYSCALL_LOG_MAX_LEN;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_readable((u64)(usize)src, len) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
for (i = 0ULL; i < len; i++) {
|
||||
buf[i] = src[i];
|
||||
}
|
||||
@@ -195,6 +318,10 @@ static u64 clks_syscall_tty_write(u64 arg0, u64 arg1) {
|
||||
len = CLKS_SYSCALL_TTY_MAX_LEN;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_readable((u64)(usize)src, len) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
for (i = 0ULL; i < len; i++) {
|
||||
buf[i] = src[i];
|
||||
}
|
||||
@@ -220,6 +347,132 @@ static u64 clks_syscall_kbd_get_char(void) {
|
||||
return (u64)(u8)ch;
|
||||
}
|
||||
|
||||
static u64 clks_syscall_fb_info(u64 arg0) {
|
||||
struct clks_syscall_fb_info_user *out_info = (struct clks_syscall_fb_info_user *)arg0;
|
||||
struct clks_framebuffer_info fb_info;
|
||||
|
||||
if (arg0 == 0ULL || clks_fb_ready() == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_writable(arg0, (u64)sizeof(*out_info)) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
fb_info = clks_fb_info();
|
||||
out_info->width = (u64)fb_info.width;
|
||||
out_info->height = (u64)fb_info.height;
|
||||
out_info->pitch = (u64)fb_info.pitch;
|
||||
out_info->bpp = (u64)fb_info.bpp;
|
||||
return 1ULL;
|
||||
}
|
||||
|
||||
static u64 clks_syscall_fb_clear(u64 arg0) {
|
||||
if (clks_fb_ready() == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
clks_fb_clear((u32)(arg0 & 0xFFFFFFFFULL));
|
||||
return 1ULL;
|
||||
}
|
||||
|
||||
static u64 clks_syscall_fb_blit(u64 arg0) {
|
||||
struct clks_syscall_fb_blit_req req;
|
||||
const u8 *src_base;
|
||||
struct clks_framebuffer_info fb_info;
|
||||
u64 src_width;
|
||||
u64 src_height;
|
||||
u64 src_pitch_bytes;
|
||||
u64 dst_x;
|
||||
u64 dst_y;
|
||||
u64 scale;
|
||||
u64 y;
|
||||
u64 x;
|
||||
|
||||
if (arg0 == 0ULL || clks_fb_ready() == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_readable(arg0, (u64)sizeof(req)) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
clks_memcpy(&req, (const void *)(usize)arg0, sizeof(req));
|
||||
|
||||
if (req.pixels_ptr == 0ULL) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
src_width = req.src_width;
|
||||
src_height = req.src_height;
|
||||
src_pitch_bytes = req.src_pitch_bytes;
|
||||
dst_x = req.dst_x;
|
||||
dst_y = req.dst_y;
|
||||
scale = req.scale;
|
||||
|
||||
if (src_width == 0ULL || src_height == 0ULL || scale == 0ULL) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (src_width > 4096ULL || src_height > 4096ULL || scale > 8ULL) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (src_pitch_bytes == 0ULL) {
|
||||
src_pitch_bytes = src_width * 4ULL;
|
||||
}
|
||||
|
||||
if (src_pitch_bytes < (src_width * 4ULL)) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (src_pitch_bytes != 0ULL && src_height > (((u64)-1) / src_pitch_bytes)) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_readable(req.pixels_ptr, src_pitch_bytes * src_height) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
src_base = (const u8 *)(usize)req.pixels_ptr;
|
||||
fb_info = clks_fb_info();
|
||||
|
||||
if (dst_x >= (u64)fb_info.width || dst_y >= (u64)fb_info.height) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
for (y = 0ULL; y < src_height; y++) {
|
||||
const u32 *src_row = (const u32 *)(const void *)(src_base + (usize)(y * src_pitch_bytes));
|
||||
u64 draw_y = dst_y + (y * scale);
|
||||
|
||||
if (draw_y >= (u64)fb_info.height) {
|
||||
break;
|
||||
}
|
||||
|
||||
for (x = 0ULL; x < src_width; x++) {
|
||||
u32 color = src_row[x];
|
||||
u64 draw_x = dst_x + (x * scale);
|
||||
|
||||
if (draw_x >= (u64)fb_info.width) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (scale == 1ULL) {
|
||||
clks_fb_draw_pixel((u32)draw_x, (u32)draw_y, color);
|
||||
} else {
|
||||
clks_fb_fill_rect((u32)draw_x, (u32)draw_y, (u32)scale, (u32)scale, color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 1ULL;
|
||||
}
|
||||
|
||||
static u64 clks_syscall_kernel_version(u64 arg0, u64 arg1) {
|
||||
usize len = clks_strlen(CLKS_VERSION_STRING);
|
||||
return clks_syscall_copy_text_to_user(arg0, arg1, CLKS_VERSION_STRING, len);
|
||||
}
|
||||
|
||||
static u64 clks_syscall_fd_open(u64 arg0, u64 arg1, u64 arg2) {
|
||||
char path[CLKS_SYSCALL_PATH_MAX];
|
||||
|
||||
@@ -235,6 +488,10 @@ static u64 clks_syscall_fd_read(u64 arg0, u64 arg1, u64 arg2) {
|
||||
return (u64)-1;
|
||||
}
|
||||
|
||||
if (arg2 > 0ULL && clks_syscall_user_ptr_writable(arg1, arg2) == CLKS_FALSE) {
|
||||
return (u64)-1;
|
||||
}
|
||||
|
||||
return clks_exec_fd_read(arg0, (void *)arg1, arg2);
|
||||
}
|
||||
|
||||
@@ -243,6 +500,10 @@ static u64 clks_syscall_fd_write(u64 arg0, u64 arg1, u64 arg2) {
|
||||
return (u64)-1;
|
||||
}
|
||||
|
||||
if (arg2 > 0ULL && clks_syscall_user_ptr_readable(arg1, arg2) == CLKS_FALSE) {
|
||||
return (u64)-1;
|
||||
}
|
||||
|
||||
return clks_exec_fd_write(arg0, (const void *)arg1, arg2);
|
||||
}
|
||||
|
||||
@@ -821,6 +1082,10 @@ static u64 clks_syscall_kdbg_bt(u64 arg0) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_readable(arg0, (u64)sizeof(req)) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
clks_memcpy(&req, (const void *)arg0, sizeof(req));
|
||||
|
||||
if (req.out_ptr == 0ULL || req.out_size == 0ULL) {
|
||||
@@ -1087,6 +1352,10 @@ static u64 clks_syscall_fs_get_child_name(u64 arg0, u64 arg1, u64 arg2) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_writable(arg2, CLKS_SYSCALL_NAME_MAX) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (clks_syscall_copy_user_string(arg0, path, sizeof(path)) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
@@ -1158,6 +1427,10 @@ static u64 clks_syscall_fs_read(u64 arg0, u64 arg1, u64 arg2) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_writable(arg1, arg2) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (clks_syscall_copy_user_string(arg0, path, sizeof(path)) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
@@ -1252,6 +1525,10 @@ static u64 clks_syscall_exec_pathv_io(u64 arg0, u64 arg1, u64 arg2) {
|
||||
return (u64)-1;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_readable(arg2, (u64)sizeof(req)) == CLKS_FALSE) {
|
||||
return (u64)-1;
|
||||
}
|
||||
|
||||
clks_memcpy(&req, (const void *)arg2, sizeof(req));
|
||||
|
||||
if (clks_syscall_copy_user_optional_string(req.env_line_ptr, env_line, sizeof(env_line)) == CLKS_FALSE) {
|
||||
@@ -1315,6 +1592,9 @@ static u64 clks_syscall_waitpid(u64 arg0, u64 arg1) {
|
||||
u64 wait_ret = clks_exec_wait_pid(arg0, &status);
|
||||
|
||||
if (wait_ret == 1ULL && arg1 != 0ULL) {
|
||||
if (clks_syscall_user_ptr_writable(arg1, (u64)sizeof(status)) == CLKS_FALSE) {
|
||||
return (u64)-1;
|
||||
}
|
||||
clks_memcpy((void *)arg1, &status, sizeof(status));
|
||||
}
|
||||
|
||||
@@ -1334,6 +1614,10 @@ static u64 clks_syscall_proc_argv(u64 arg0, u64 arg1, u64 arg2) {
|
||||
arg2 = CLKS_SYSCALL_ITEM_MAX;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_writable(arg1, arg2) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
return (clks_exec_copy_current_argv(arg0, (char *)arg1, (usize)arg2) == CLKS_TRUE) ? 1ULL : 0ULL;
|
||||
}
|
||||
|
||||
@@ -1350,6 +1634,10 @@ static u64 clks_syscall_proc_env(u64 arg0, u64 arg1, u64 arg2) {
|
||||
arg2 = CLKS_SYSCALL_ITEM_MAX;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_writable(arg1, arg2) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
return (clks_exec_copy_current_env(arg0, (char *)arg1, (usize)arg2) == CLKS_TRUE) ? 1ULL : 0ULL;
|
||||
}
|
||||
|
||||
@@ -1380,6 +1668,10 @@ static u64 clks_syscall_proc_pid_at(u64 arg0, u64 arg1) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_writable(arg1, (u64)sizeof(pid)) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (clks_exec_proc_pid_at(arg0, &pid) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
@@ -1395,6 +1687,10 @@ static u64 clks_syscall_proc_snapshot(u64 arg0, u64 arg1, u64 arg2) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_writable(arg1, (u64)sizeof(snap)) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (clks_exec_proc_snapshot(arg0, &snap) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
@@ -1545,6 +1841,10 @@ static u64 clks_syscall_fs_write_common(u64 arg0, u64 arg1, u64 arg2, clks_bool
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_readable(arg1, arg2) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
while (remaining > 0ULL) {
|
||||
u64 chunk_len = remaining;
|
||||
void *heap_copy;
|
||||
@@ -1611,6 +1911,10 @@ static u64 clks_syscall_log_journal_read(u64 arg0, u64 arg1, u64 arg2) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (clks_syscall_user_ptr_writable(arg1, arg2) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
|
||||
if (clks_log_journal_read(arg0, line, sizeof(line)) == CLKS_FALSE) {
|
||||
return 0ULL;
|
||||
}
|
||||
@@ -1641,6 +1945,264 @@ static void clks_syscall_serial_write_hex64(u64 value) {
|
||||
}
|
||||
}
|
||||
|
||||
#if CLKS_CFG_USC != 0
|
||||
static void clks_syscall_usc_sleep_until_input(void) {
|
||||
#if defined(CLKS_ARCH_X86_64)
|
||||
u64 flags = 0ULL;
|
||||
|
||||
__asm__ volatile("pushfq; popq %0" : "=r"(flags) : : "memory");
|
||||
|
||||
if ((flags & (1ULL << 9)) != 0ULL) {
|
||||
__asm__ volatile("hlt" : : : "memory");
|
||||
} else {
|
||||
__asm__ volatile("sti; hlt; cli" : : : "memory");
|
||||
}
|
||||
#elif defined(CLKS_ARCH_AARCH64)
|
||||
clks_cpu_pause();
|
||||
#endif
|
||||
}
|
||||
|
||||
static const char *clks_syscall_usc_syscall_name(u64 id) {
|
||||
switch (id) {
|
||||
case CLKS_SYSCALL_FS_MKDIR:
|
||||
return "FS_MKDIR";
|
||||
case CLKS_SYSCALL_FS_WRITE:
|
||||
return "FS_WRITE";
|
||||
case CLKS_SYSCALL_FS_APPEND:
|
||||
return "FS_APPEND";
|
||||
case CLKS_SYSCALL_FS_REMOVE:
|
||||
return "FS_REMOVE";
|
||||
case CLKS_SYSCALL_EXEC_PATH:
|
||||
return "EXEC_PATH";
|
||||
case CLKS_SYSCALL_EXEC_PATHV:
|
||||
return "EXEC_PATHV";
|
||||
case CLKS_SYSCALL_EXEC_PATHV_IO:
|
||||
return "EXEC_PATHV_IO";
|
||||
case CLKS_SYSCALL_SPAWN_PATH:
|
||||
return "SPAWN_PATH";
|
||||
case CLKS_SYSCALL_SPAWN_PATHV:
|
||||
return "SPAWN_PATHV";
|
||||
case CLKS_SYSCALL_PROC_KILL:
|
||||
return "PROC_KILL";
|
||||
case CLKS_SYSCALL_SHUTDOWN:
|
||||
return "SHUTDOWN";
|
||||
case CLKS_SYSCALL_RESTART:
|
||||
return "RESTART";
|
||||
default:
|
||||
return "UNKNOWN";
|
||||
}
|
||||
}
|
||||
|
||||
static clks_bool clks_syscall_usc_is_dangerous(u64 id) {
|
||||
switch (id) {
|
||||
case CLKS_SYSCALL_FS_MKDIR:
|
||||
return (CLKS_CFG_USC_SC_FS_MKDIR != 0) ? CLKS_TRUE : CLKS_FALSE;
|
||||
case CLKS_SYSCALL_FS_WRITE:
|
||||
return (CLKS_CFG_USC_SC_FS_WRITE != 0) ? CLKS_TRUE : CLKS_FALSE;
|
||||
case CLKS_SYSCALL_FS_APPEND:
|
||||
return (CLKS_CFG_USC_SC_FS_APPEND != 0) ? CLKS_TRUE : CLKS_FALSE;
|
||||
case CLKS_SYSCALL_FS_REMOVE:
|
||||
return (CLKS_CFG_USC_SC_FS_REMOVE != 0) ? CLKS_TRUE : CLKS_FALSE;
|
||||
case CLKS_SYSCALL_EXEC_PATH:
|
||||
return (CLKS_CFG_USC_SC_EXEC_PATH != 0) ? CLKS_TRUE : CLKS_FALSE;
|
||||
case CLKS_SYSCALL_EXEC_PATHV:
|
||||
return (CLKS_CFG_USC_SC_EXEC_PATHV != 0) ? CLKS_TRUE : CLKS_FALSE;
|
||||
case CLKS_SYSCALL_EXEC_PATHV_IO:
|
||||
return (CLKS_CFG_USC_SC_EXEC_PATHV_IO != 0) ? CLKS_TRUE : CLKS_FALSE;
|
||||
case CLKS_SYSCALL_SPAWN_PATH:
|
||||
return (CLKS_CFG_USC_SC_SPAWN_PATH != 0) ? CLKS_TRUE : CLKS_FALSE;
|
||||
case CLKS_SYSCALL_SPAWN_PATHV:
|
||||
return (CLKS_CFG_USC_SC_SPAWN_PATHV != 0) ? CLKS_TRUE : CLKS_FALSE;
|
||||
case CLKS_SYSCALL_PROC_KILL:
|
||||
return (CLKS_CFG_USC_SC_PROC_KILL != 0) ? CLKS_TRUE : CLKS_FALSE;
|
||||
case CLKS_SYSCALL_SHUTDOWN:
|
||||
return (CLKS_CFG_USC_SC_SHUTDOWN != 0) ? CLKS_TRUE : CLKS_FALSE;
|
||||
case CLKS_SYSCALL_RESTART:
|
||||
return (CLKS_CFG_USC_SC_RESTART != 0) ? CLKS_TRUE : CLKS_FALSE;
|
||||
default:
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static void clks_syscall_usc_copy_path(char *dst, usize dst_size, const char *src) {
|
||||
usize i = 0U;
|
||||
|
||||
if (dst == CLKS_NULL || dst_size == 0U) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (src == CLKS_NULL) {
|
||||
dst[0] = '\0';
|
||||
return;
|
||||
}
|
||||
|
||||
while (src[i] != '\0' && i + 1U < dst_size) {
|
||||
dst[i] = src[i];
|
||||
i++;
|
||||
}
|
||||
|
||||
dst[i] = '\0';
|
||||
}
|
||||
|
||||
static clks_bool clks_syscall_usc_current_app_path(char *out_path, usize out_size) {
|
||||
u64 pid;
|
||||
struct clks_exec_proc_snapshot snap;
|
||||
|
||||
if (out_path == CLKS_NULL || out_size == 0U) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
out_path[0] = '\0';
|
||||
pid = clks_exec_current_pid();
|
||||
|
||||
if (pid == 0ULL) {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
if (clks_exec_proc_snapshot(pid, &snap) == CLKS_FALSE || snap.path[0] == '\0') {
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
clks_syscall_usc_copy_path(out_path, out_size, snap.path);
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
static i32 clks_syscall_usc_find_allowed_path(const char *path) {
|
||||
u32 i;
|
||||
|
||||
if (path == CLKS_NULL || path[0] == '\0') {
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (i = 0U; i < CLKS_SYSCALL_USC_MAX_ALLOWED_APPS; i++) {
|
||||
if (clks_syscall_usc_allowed_used[i] == CLKS_TRUE && clks_strcmp(clks_syscall_usc_allowed_path[i], path) == 0) {
|
||||
return (i32)i;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
static void clks_syscall_usc_remember_path(const char *path) {
|
||||
u32 i;
|
||||
|
||||
if (path == CLKS_NULL || path[0] == '\0') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (clks_syscall_usc_find_allowed_path(path) >= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0U; i < CLKS_SYSCALL_USC_MAX_ALLOWED_APPS; i++) {
|
||||
if (clks_syscall_usc_allowed_used[i] == CLKS_FALSE) {
|
||||
clks_syscall_usc_allowed_used[i] = CLKS_TRUE;
|
||||
clks_syscall_usc_copy_path(clks_syscall_usc_allowed_path[i], sizeof(clks_syscall_usc_allowed_path[i]),
|
||||
path);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void clks_syscall_usc_emit_text_line(const char *label, const char *value) {
|
||||
char message[320];
|
||||
usize pos = 0U;
|
||||
|
||||
message[0] = '\0';
|
||||
pos = clks_syscall_procfs_append_text(message, sizeof(message), pos, label);
|
||||
pos = clks_syscall_procfs_append_text(message, sizeof(message), pos, ": ");
|
||||
pos = clks_syscall_procfs_append_text(message, sizeof(message), pos, value);
|
||||
(void)pos;
|
||||
clks_log(CLKS_LOG_WARN, "USC", message);
|
||||
}
|
||||
|
||||
static void clks_syscall_usc_emit_hex_line(const char *label, u64 value) {
|
||||
clks_log_hex(CLKS_LOG_WARN, "USC", label, value);
|
||||
}
|
||||
|
||||
static clks_bool clks_syscall_usc_prompt_allow(const char *app_path, u64 id, u64 arg0, u64 arg1, u64 arg2) {
|
||||
const char *name = clks_syscall_usc_syscall_name(id);
|
||||
u32 tty_index = clks_exec_current_tty();
|
||||
|
||||
#if !defined(CLKS_CFG_KEYBOARD) || (CLKS_CFG_KEYBOARD == 0)
|
||||
(void)tty_index;
|
||||
clks_syscall_usc_emit_text_line("BLOCK", "keyboard disabled, cannot prompt");
|
||||
return CLKS_FALSE;
|
||||
#else
|
||||
clks_syscall_usc_emit_text_line("DANGEROUS_SYSCALL", "REQUEST DETECTED");
|
||||
clks_syscall_usc_emit_text_line("APP", app_path);
|
||||
clks_syscall_usc_emit_hex_line("SYSCALL_ID", id);
|
||||
clks_syscall_usc_emit_text_line("SYSCALL_NAME", name);
|
||||
clks_syscall_usc_emit_hex_line("ARG0", arg0);
|
||||
clks_syscall_usc_emit_hex_line("ARG1", arg1);
|
||||
clks_syscall_usc_emit_hex_line("ARG2", arg2);
|
||||
clks_log(CLKS_LOG_WARN, "USC", "CONFIRM: Allow this app permanently? [y/N]");
|
||||
clks_tty_write("[WARN][USC] Allow this app permanently? [y/N]: ");
|
||||
clks_serial_write("[WARN][USC] Allow this app permanently? [y/N]: ");
|
||||
|
||||
while (1) {
|
||||
char ch = '\0';
|
||||
|
||||
if (clks_keyboard_pop_char_for_tty(tty_index, &ch) == CLKS_TRUE) {
|
||||
if (ch == 'y' || ch == 'Y') {
|
||||
clks_tty_write("y\n");
|
||||
clks_serial_write("y\n");
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
if (ch == 'n' || ch == 'N' || ch == '\n' || ch == '\r' || ch == 27) {
|
||||
clks_tty_write("n\n");
|
||||
clks_serial_write("n\n");
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
clks_syscall_usc_sleep_until_input();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
static clks_bool clks_syscall_usc_check(u64 id, u64 arg0, u64 arg1, u64 arg2) {
|
||||
#if CLKS_CFG_USC == 0
|
||||
(void)id;
|
||||
(void)arg0;
|
||||
(void)arg1;
|
||||
(void)arg2;
|
||||
return CLKS_TRUE;
|
||||
#else
|
||||
char app_path[CLKS_EXEC_PROC_PATH_MAX];
|
||||
|
||||
if (clks_syscall_usc_is_dangerous(id) == CLKS_FALSE) {
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
if (clks_exec_is_running() == CLKS_FALSE || clks_exec_current_path_is_user() == CLKS_FALSE) {
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
if (clks_syscall_usc_current_app_path(app_path, sizeof(app_path)) == CLKS_FALSE) {
|
||||
clks_syscall_usc_emit_text_line("BLOCK", "cannot resolve current app path");
|
||||
return CLKS_FALSE;
|
||||
}
|
||||
|
||||
if (clks_syscall_usc_find_allowed_path(app_path) >= 0) {
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
if (clks_syscall_usc_prompt_allow(app_path, id, arg0, arg1, arg2) == CLKS_TRUE) {
|
||||
clks_syscall_usc_remember_path(app_path);
|
||||
clks_syscall_usc_emit_text_line("ALLOW", app_path);
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
clks_syscall_usc_emit_text_line("DENY", app_path);
|
||||
return CLKS_FALSE;
|
||||
#endif
|
||||
}
|
||||
|
||||
static void clks_syscall_stats_reset(void) {
|
||||
clks_syscall_stats_total = 0ULL;
|
||||
clks_memset(clks_syscall_stats_id_count, 0, sizeof(clks_syscall_stats_id_count));
|
||||
@@ -1754,6 +2316,10 @@ void clks_syscall_init(void) {
|
||||
clks_syscall_symbols_checked = CLKS_FALSE;
|
||||
clks_syscall_symbols_data = CLKS_NULL;
|
||||
clks_syscall_symbols_size = 0ULL;
|
||||
#if CLKS_CFG_USC != 0
|
||||
clks_memset(clks_syscall_usc_allowed_used, 0, sizeof(clks_syscall_usc_allowed_used));
|
||||
clks_memset(clks_syscall_usc_allowed_path, 0, sizeof(clks_syscall_usc_allowed_path));
|
||||
#endif
|
||||
clks_syscall_stats_reset();
|
||||
clks_log(CLKS_LOG_INFO, "SYSCALL", "INT80 FRAMEWORK ONLINE");
|
||||
}
|
||||
@@ -1773,6 +2339,10 @@ u64 clks_syscall_dispatch(void *frame_ptr) {
|
||||
clks_syscall_stats_record(id);
|
||||
clks_syscall_trace_user_program(id);
|
||||
|
||||
if (clks_syscall_usc_check(id, frame->rbx, frame->rcx, frame->rdx) == CLKS_FALSE) {
|
||||
return (u64)-1;
|
||||
}
|
||||
|
||||
switch (id) {
|
||||
case CLKS_SYSCALL_LOG_WRITE:
|
||||
return clks_syscall_log_write(frame->rbx, frame->rcx);
|
||||
@@ -1943,6 +2513,14 @@ u64 clks_syscall_dispatch(void *frame_ptr) {
|
||||
return clks_syscall_dl_close(frame->rbx);
|
||||
case CLKS_SYSCALL_DL_SYM:
|
||||
return clks_syscall_dl_sym(frame->rbx, frame->rcx);
|
||||
case CLKS_SYSCALL_FB_INFO:
|
||||
return clks_syscall_fb_info(frame->rbx);
|
||||
case CLKS_SYSCALL_FB_BLIT:
|
||||
return clks_syscall_fb_blit(frame->rbx);
|
||||
case CLKS_SYSCALL_FB_CLEAR:
|
||||
return clks_syscall_fb_clear(frame->rbx);
|
||||
case CLKS_SYSCALL_KERNEL_VERSION:
|
||||
return clks_syscall_kernel_version(frame->rbx, frame->rcx);
|
||||
default:
|
||||
return (u64)-1;
|
||||
}
|
||||
@@ -53,6 +53,7 @@ static clks_bool clks_userland_probe_elf(const char *path, const char *tag) {
|
||||
return CLKS_TRUE;
|
||||
}
|
||||
|
||||
#if CLKS_CFG_USER_INIT_SCRIPT_PROBE
|
||||
static void clks_userland_probe_init_script(void) {
|
||||
const void *data;
|
||||
u64 size = 0ULL;
|
||||
@@ -67,6 +68,7 @@ static void clks_userland_probe_init_script(void) {
|
||||
clks_log(CLKS_LOG_INFO, "USER", "INIT SCRIPT READY /SHELL/INIT.CMD");
|
||||
clks_log_hex(CLKS_LOG_INFO, "USER", "INIT_SCRIPT_SIZE", size);
|
||||
}
|
||||
#endif
|
||||
|
||||
static clks_bool clks_userland_request_shell_exec(void) {
|
||||
u64 status = (u64)-1;
|
||||
@@ -30,3 +30,33 @@ int memcmp(const void *left, const void *right, usize count) {
|
||||
int bcmp(const void *left, const void *right, usize count) {
|
||||
return memcmp(left, right, count);
|
||||
}
|
||||
|
||||
usize strlen(const char *str) {
|
||||
return clks_strlen(str);
|
||||
}
|
||||
|
||||
char *strchr(const char *str, int c) {
|
||||
char ch = (char)c;
|
||||
const char *cur = str;
|
||||
|
||||
while (*cur != '\0') {
|
||||
if (*cur == ch) {
|
||||
return (char *)cur;
|
||||
}
|
||||
cur++;
|
||||
}
|
||||
|
||||
if (ch == '\0') {
|
||||
return (char *)cur;
|
||||
}
|
||||
|
||||
return (char *)0;
|
||||
}
|
||||
|
||||
int abs(int value) {
|
||||
return (value < 0) ? -value : value;
|
||||
}
|
||||
|
||||
long labs(long value) {
|
||||
return (value < 0L) ? -value : value;
|
||||
}
|
||||
618
clks/third_party/miniz/miniz.h
vendored
Normal file
618
clks/third_party/miniz/miniz.h
vendored
Normal file
@@ -0,0 +1,618 @@
|
||||
/* miniz.c 3.1.0 - public domain deflate/inflate, zlib-subset, ZIP reading/writing/appending, PNG writing
|
||||
See "unlicense" statement at the end of this file.
|
||||
Rich Geldreich <richgel99@gmail.com>, last updated Oct. 13, 2013
|
||||
Implements RFC 1950: http://www.ietf.org/rfc/rfc1950.txt and RFC 1951: http://www.ietf.org/rfc/rfc1951.txt
|
||||
|
||||
Most API's defined in miniz.c are optional. For example, to disable the archive related functions just define
|
||||
MINIZ_NO_ARCHIVE_APIS, or to get rid of all stdio usage define MINIZ_NO_STDIO (see the list below for more macros).
|
||||
|
||||
* Low-level Deflate/Inflate implementation notes:
|
||||
|
||||
Compression: Use the "tdefl" API's. The compressor supports raw, static, and dynamic blocks, lazy or
|
||||
greedy parsing, match length filtering, RLE-only, and Huffman-only streams. It performs and compresses
|
||||
approximately as well as zlib.
|
||||
|
||||
Decompression: Use the "tinfl" API's. The entire decompressor is implemented as a single function
|
||||
coroutine: see tinfl_decompress(). It supports decompression into a 32KB (or larger power of 2) wrapping buffer, or
|
||||
into a memory block large enough to hold the entire file.
|
||||
|
||||
The low-level tdefl/tinfl API's do not make any use of dynamic memory allocation.
|
||||
|
||||
* zlib-style API notes:
|
||||
|
||||
miniz.c implements a fairly large subset of zlib. There's enough functionality present for it to be a drop-in
|
||||
zlib replacement in many apps:
|
||||
The z_stream struct, optional memory allocation callbacks
|
||||
deflateInit/deflateInit2/deflate/deflateReset/deflateEnd/deflateBound
|
||||
inflateInit/inflateInit2/inflate/inflateReset/inflateEnd
|
||||
compress, compress2, compressBound, uncompress
|
||||
CRC-32, Adler-32 - Using modern, minimal code size, CPU cache friendly routines.
|
||||
Supports raw deflate streams or standard zlib streams with adler-32 checking.
|
||||
|
||||
Limitations:
|
||||
The callback API's are not implemented yet. No support for gzip headers or zlib static dictionaries.
|
||||
I've tried to closely emulate zlib's various flavors of stream flushing and return status codes, but
|
||||
there are no guarantees that miniz.c pulls this off perfectly.
|
||||
|
||||
* PNG writing: See the tdefl_write_image_to_png_file_in_memory() function, originally written by
|
||||
Alex Evans. Supports 1-4 bytes/pixel images.
|
||||
|
||||
* ZIP archive API notes:
|
||||
|
||||
The ZIP archive API's where designed with simplicity and efficiency in mind, with just enough abstraction to
|
||||
get the job done with minimal fuss. There are simple API's to retrieve file information, read files from
|
||||
existing archives, create new archives, append new files to existing archives, or clone archive data from
|
||||
one archive to another. It supports archives located in memory or the heap, on disk (using stdio.h),
|
||||
or you can specify custom file read/write callbacks.
|
||||
|
||||
- Archive reading: Just call this function to read a single file from a disk archive:
|
||||
|
||||
void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name,
|
||||
size_t *pSize, mz_uint zip_flags);
|
||||
|
||||
For more complex cases, use the "mz_zip_reader" functions. Upon opening an archive, the entire central
|
||||
directory is located and read as-is into memory, and subsequent file access only occurs when reading individual
|
||||
files.
|
||||
|
||||
- Archives file scanning: The simple way is to use this function to scan a loaded archive for a specific file:
|
||||
|
||||
int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags);
|
||||
|
||||
The locate operation can optionally check file comments too, which (as one example) can be used to identify
|
||||
multiple versions of the same file in an archive. This function uses a simple linear search through the central
|
||||
directory, so it's not very fast.
|
||||
|
||||
Alternately, you can iterate through all the files in an archive (using mz_zip_reader_get_num_files()) and
|
||||
retrieve detailed info on each file by calling mz_zip_reader_file_stat().
|
||||
|
||||
- Archive creation: Use the "mz_zip_writer" functions. The ZIP writer immediately writes compressed file data
|
||||
to disk and builds an exact image of the central directory in memory. The central directory image is written
|
||||
all at once at the end of the archive file when the archive is finalized.
|
||||
|
||||
The archive writer can optionally align each file's local header and file data to any power of 2 alignment,
|
||||
which can be useful when the archive will be read from optical media. Also, the writer supports placing
|
||||
arbitrary data blobs at the very beginning of ZIP archives. Archives written using either feature are still
|
||||
readable by any ZIP tool.
|
||||
|
||||
- Archive appending: The simple way to add a single file to an archive is to call this function:
|
||||
|
||||
mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name,
|
||||
const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags);
|
||||
|
||||
The archive will be created if it doesn't already exist, otherwise it'll be appended to.
|
||||
Note the appending is done in-place and is not an atomic operation, so if something goes wrong
|
||||
during the operation it's possible the archive could be left without a central directory (although the local
|
||||
file headers and file data will be fine, so the archive will be recoverable).
|
||||
|
||||
For more complex archive modification scenarios:
|
||||
1. The safest way is to use a mz_zip_reader to read the existing archive, cloning only those bits you want to
|
||||
preserve into a new archive using using the mz_zip_writer_add_from_zip_reader() function (which compiles the
|
||||
compressed file data as-is). When you're done, delete the old archive and rename the newly written archive, and
|
||||
you're done. This is safe but requires a bunch of temporary disk space or heap memory.
|
||||
|
||||
2. Or, you can convert an mz_zip_reader in-place to an mz_zip_writer using mz_zip_writer_init_from_reader(),
|
||||
append new files as needed, then finalize the archive which will write an updated central directory to the
|
||||
original archive. (This is basically what mz_zip_add_mem_to_archive_file_in_place() does.) There's a
|
||||
possibility that the archive's central directory could be lost with this method if anything goes wrong, though.
|
||||
|
||||
- ZIP archive support limitations:
|
||||
No spanning support. Extraction functions can only handle unencrypted, stored or deflated files.
|
||||
Requires streams capable of seeking.
|
||||
|
||||
* This is a header file library, like stb_image.c. To get only a header file, either cut and paste the
|
||||
below header, or create miniz.h, #define MINIZ_HEADER_FILE_ONLY, and then include miniz.c from it.
|
||||
|
||||
* Important: For best perf. be sure to customize the below macros for your target platform:
|
||||
#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1
|
||||
#define MINIZ_LITTLE_ENDIAN 1
|
||||
#define MINIZ_HAS_64BIT_REGISTERS 1
|
||||
|
||||
* On platforms using glibc, Be sure to "#define _LARGEFILE64_SOURCE 1" before including miniz.c to ensure miniz
|
||||
uses the 64-bit variants: fopen64(), stat64(), etc. Otherwise you won't be able to process large files
|
||||
(i.e. 32-bit stat() fails for me on files > 0x7FFFFFFF bytes).
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "miniz_export.h"
|
||||
|
||||
#if defined(__STRICT_ANSI__)
|
||||
#define MZ_FORCEINLINE
|
||||
#elif defined(_MSC_VER)
|
||||
#define MZ_FORCEINLINE __forceinline
|
||||
#elif defined(__GNUC__)
|
||||
#define MZ_FORCEINLINE __inline__ __attribute__((__always_inline__))
|
||||
#else
|
||||
#define MZ_FORCEINLINE inline
|
||||
#endif
|
||||
|
||||
/* Defines to completely disable specific portions of miniz.c:
|
||||
If all macros here are defined the only functionality remaining will be CRC-32 and adler-32. */
|
||||
|
||||
/* Define MINIZ_NO_STDIO to disable all usage and any functions which rely on stdio for file I/O. */
|
||||
/*#define MINIZ_NO_STDIO */
|
||||
|
||||
/* If MINIZ_NO_TIME is specified then the ZIP archive functions will not be able to get the current time, or */
|
||||
/* get/set file times, and the C run-time funcs that get/set times won't be called. */
|
||||
/* The current downside is the times written to your archives will be from 1979. */
|
||||
/*#define MINIZ_NO_TIME */
|
||||
|
||||
/* Define MINIZ_NO_DEFLATE_APIS to disable all compression API's. */
|
||||
/*#define MINIZ_NO_DEFLATE_APIS */
|
||||
|
||||
/* Define MINIZ_NO_INFLATE_APIS to disable all decompression API's. */
|
||||
/*#define MINIZ_NO_INFLATE_APIS */
|
||||
|
||||
/* Define MINIZ_NO_ARCHIVE_APIS to disable all ZIP archive API's. */
|
||||
/*#define MINIZ_NO_ARCHIVE_APIS */
|
||||
|
||||
/* Define MINIZ_NO_ARCHIVE_WRITING_APIS to disable all writing related ZIP archive API's. */
|
||||
/*#define MINIZ_NO_ARCHIVE_WRITING_APIS */
|
||||
|
||||
/* Define MINIZ_NO_ZLIB_APIS to remove all ZLIB-style compression/decompression API's. */
|
||||
/*#define MINIZ_NO_ZLIB_APIS */
|
||||
|
||||
/* Define MINIZ_NO_ZLIB_COMPATIBLE_NAME to disable zlib names, to prevent conflicts against stock zlib. */
|
||||
/*#define MINIZ_NO_ZLIB_COMPATIBLE_NAMES */
|
||||
|
||||
/* Define MINIZ_NO_MALLOC to disable all calls to malloc, free, and realloc.
|
||||
Note if MINIZ_NO_MALLOC is defined then the user must always provide custom user alloc/free/realloc
|
||||
callbacks to the zlib and archive API's, and a few stand-alone helper API's which don't provide custom user
|
||||
functions (such as tdefl_compress_mem_to_heap() and tinfl_decompress_mem_to_heap()) won't work. */
|
||||
/*#define MINIZ_NO_MALLOC */
|
||||
|
||||
#ifdef MINIZ_NO_INFLATE_APIS
|
||||
#define MINIZ_NO_ARCHIVE_APIS
|
||||
#endif
|
||||
|
||||
#ifdef MINIZ_NO_DEFLATE_APIS
|
||||
#define MINIZ_NO_ARCHIVE_WRITING_APIS
|
||||
#endif
|
||||
|
||||
#if defined(__TINYC__) && (defined(__linux) || defined(__linux__))
|
||||
/* TODO: Work around "error: include file 'sys\utime.h' when compiling with tcc on Linux */
|
||||
#define MINIZ_NO_TIME
|
||||
#endif
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#if !defined(MINIZ_NO_TIME) && !defined(MINIZ_NO_ARCHIVE_APIS)
|
||||
#include <time.h>
|
||||
#endif
|
||||
|
||||
#if defined(_M_IX86) || defined(_M_X64) || defined(__i386__) || defined(__i386) || defined(__i486__) || \
|
||||
defined(__i486) || defined(i386) || defined(__ia64__) || defined(__x86_64__)
|
||||
/* MINIZ_X86_OR_X64_CPU is only used to help set the below macros. */
|
||||
#define MINIZ_X86_OR_X64_CPU 1
|
||||
#else
|
||||
#define MINIZ_X86_OR_X64_CPU 0
|
||||
#endif
|
||||
|
||||
/* Set MINIZ_LITTLE_ENDIAN only if not set */
|
||||
#if !defined(MINIZ_LITTLE_ENDIAN)
|
||||
#if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__)
|
||||
|
||||
#if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
|
||||
/* Set MINIZ_LITTLE_ENDIAN to 1 if the processor is little endian. */
|
||||
#define MINIZ_LITTLE_ENDIAN 1
|
||||
#else
|
||||
#define MINIZ_LITTLE_ENDIAN 0
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#if MINIZ_X86_OR_X64_CPU
|
||||
#define MINIZ_LITTLE_ENDIAN 1
|
||||
#else
|
||||
#define MINIZ_LITTLE_ENDIAN 0
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Using unaligned loads and stores causes errors when using UBSan */
|
||||
#if defined(__has_feature)
|
||||
#if __has_feature(undefined_behavior_sanitizer)
|
||||
#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES only if not set */
|
||||
#if !defined(MINIZ_USE_UNALIGNED_LOADS_AND_STORES)
|
||||
#if MINIZ_X86_OR_X64_CPU
|
||||
/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient integer loads and stores from unaligned
|
||||
* addresses. */
|
||||
#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 0
|
||||
#define MINIZ_UNALIGNED_USE_MEMCPY
|
||||
#else
|
||||
#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(_M_X64) || defined(_WIN64) || defined(__MINGW64__) || defined(_LP64) || defined(__LP64__) || \
|
||||
defined(__ia64__) || defined(__x86_64__)
|
||||
/* Set MINIZ_HAS_64BIT_REGISTERS to 1 if operations on 64-bit integers are reasonably fast (and don't involve compiler
|
||||
* generated calls to helper functions). */
|
||||
#define MINIZ_HAS_64BIT_REGISTERS 1
|
||||
#else
|
||||
#define MINIZ_HAS_64BIT_REGISTERS 0
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* ------------------- zlib-style API Definitions. */
|
||||
|
||||
/* For more compatibility with zlib, miniz.c uses unsigned long for some parameters/struct members. Beware: mz_ulong can
|
||||
* be either 32 or 64-bits! */
|
||||
typedef unsigned long mz_ulong;
|
||||
|
||||
/* mz_free() internally uses the MZ_FREE() macro (which by default calls free() unless you've modified the MZ_MALLOC
|
||||
* macro) to release a block allocated from the heap. */
|
||||
MINIZ_EXPORT void mz_free(void *p);
|
||||
|
||||
#define MZ_ADLER32_INIT (1)
|
||||
/* mz_adler32() returns the initial adler-32 value to use when called with ptr==NULL. */
|
||||
MINIZ_EXPORT mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len);
|
||||
|
||||
#define MZ_CRC32_INIT (0)
|
||||
/* mz_crc32() returns the initial CRC-32 value to use when called with ptr==NULL. */
|
||||
MINIZ_EXPORT mz_ulong mz_crc32(mz_ulong crc, const unsigned char *ptr, size_t buf_len);
|
||||
|
||||
/* Compression strategies. */
|
||||
enum { MZ_DEFAULT_STRATEGY = 0, MZ_FILTERED = 1, MZ_HUFFMAN_ONLY = 2, MZ_RLE = 3, MZ_FIXED = 4 };
|
||||
|
||||
/* Method */
|
||||
#define MZ_DEFLATED 8
|
||||
|
||||
/* Heap allocation callbacks.
|
||||
Note that mz_alloc_func parameter types purposely differ from zlib's: items/size is size_t, not unsigned long. */
|
||||
typedef void *(*mz_alloc_func)(void *opaque, size_t items, size_t size);
|
||||
typedef void (*mz_free_func)(void *opaque, void *address);
|
||||
typedef void *(*mz_realloc_func)(void *opaque, void *address, size_t items, size_t size);
|
||||
|
||||
/* Compression levels: 0-9 are the standard zlib-style levels, 10 is best possible compression (not zlib compatible, and
|
||||
* may be very slow), MZ_DEFAULT_COMPRESSION=MZ_DEFAULT_LEVEL. */
|
||||
enum {
|
||||
MZ_NO_COMPRESSION = 0,
|
||||
MZ_BEST_SPEED = 1,
|
||||
MZ_BEST_COMPRESSION = 9,
|
||||
MZ_UBER_COMPRESSION = 10,
|
||||
MZ_DEFAULT_LEVEL = 6,
|
||||
MZ_DEFAULT_COMPRESSION = -1
|
||||
};
|
||||
|
||||
#define MZ_VERSION "11.3.1"
|
||||
#define MZ_VERNUM 0xB301
|
||||
#define MZ_VER_MAJOR 11
|
||||
#define MZ_VER_MINOR 3
|
||||
#define MZ_VER_REVISION 1
|
||||
#define MZ_VER_SUBREVISION 0
|
||||
|
||||
#ifndef MINIZ_NO_ZLIB_APIS
|
||||
|
||||
/* Flush values. For typical usage you only need MZ_NO_FLUSH and MZ_FINISH. The other values are for advanced use (refer
|
||||
* to the zlib docs). */
|
||||
enum { MZ_NO_FLUSH = 0, MZ_PARTIAL_FLUSH = 1, MZ_SYNC_FLUSH = 2, MZ_FULL_FLUSH = 3, MZ_FINISH = 4, MZ_BLOCK = 5 };
|
||||
|
||||
/* Return status codes. MZ_PARAM_ERROR is non-standard. */
|
||||
enum {
|
||||
MZ_OK = 0,
|
||||
MZ_STREAM_END = 1,
|
||||
MZ_NEED_DICT = 2,
|
||||
MZ_ERRNO = -1,
|
||||
MZ_STREAM_ERROR = -2,
|
||||
MZ_DATA_ERROR = -3,
|
||||
MZ_MEM_ERROR = -4,
|
||||
MZ_BUF_ERROR = -5,
|
||||
MZ_VERSION_ERROR = -6,
|
||||
MZ_PARAM_ERROR = -10000
|
||||
};
|
||||
|
||||
/* Window bits */
|
||||
#define MZ_DEFAULT_WINDOW_BITS 15
|
||||
|
||||
struct mz_internal_state;
|
||||
|
||||
/* Compression/decompression stream struct. */
|
||||
typedef struct mz_stream_s {
|
||||
const unsigned char *next_in; /* pointer to next byte to read */
|
||||
unsigned int avail_in; /* number of bytes available at next_in */
|
||||
mz_ulong total_in; /* total number of bytes consumed so far */
|
||||
|
||||
unsigned char *next_out; /* pointer to next byte to write */
|
||||
unsigned int avail_out; /* number of bytes that can be written to next_out */
|
||||
mz_ulong total_out; /* total number of bytes produced so far */
|
||||
|
||||
char *msg; /* error msg (unused) */
|
||||
struct mz_internal_state *state; /* internal state, allocated by zalloc/zfree */
|
||||
|
||||
mz_alloc_func zalloc; /* optional heap allocation function (defaults to malloc) */
|
||||
mz_free_func zfree; /* optional heap free function (defaults to free) */
|
||||
void *opaque; /* heap alloc function user pointer */
|
||||
|
||||
int data_type; /* data_type (unused) */
|
||||
mz_ulong adler; /* adler32 of the source or uncompressed data */
|
||||
mz_ulong reserved; /* not used */
|
||||
} mz_stream;
|
||||
|
||||
typedef mz_stream *mz_streamp;
|
||||
|
||||
/* Returns the version string of miniz.c. */
|
||||
MINIZ_EXPORT const char *mz_version(void);
|
||||
|
||||
#ifndef MINIZ_NO_DEFLATE_APIS
|
||||
|
||||
/* mz_deflateInit() initializes a compressor with default options: */
|
||||
/* Parameters: */
|
||||
/* pStream must point to an initialized mz_stream struct. */
|
||||
/* level must be between [MZ_NO_COMPRESSION, MZ_BEST_COMPRESSION]. */
|
||||
/* level 1 enables a specially optimized compression function that's been optimized purely for performance, not ratio.
|
||||
*/
|
||||
/* (This special func. is currently only enabled when MINIZ_USE_UNALIGNED_LOADS_AND_STORES and MINIZ_LITTLE_ENDIAN are
|
||||
* defined.) */
|
||||
/* Return values: */
|
||||
/* MZ_OK on success. */
|
||||
/* MZ_STREAM_ERROR if the stream is bogus. */
|
||||
/* MZ_PARAM_ERROR if the input parameters are bogus. */
|
||||
/* MZ_MEM_ERROR on out of memory. */
|
||||
MINIZ_EXPORT int mz_deflateInit(mz_streamp pStream, int level);
|
||||
|
||||
/* mz_deflateInit2() is like mz_deflate(), except with more control: */
|
||||
/* Additional parameters: */
|
||||
/* method must be MZ_DEFLATED */
|
||||
/* window_bits must be MZ_DEFAULT_WINDOW_BITS (to wrap the deflate stream with zlib header/adler-32 footer) or
|
||||
* -MZ_DEFAULT_WINDOW_BITS (raw deflate/no header or footer) */
|
||||
/* mem_level must be between [1, 9] (it's checked but ignored by miniz.c) */
|
||||
MINIZ_EXPORT int mz_deflateInit2(mz_streamp pStream, int level, int method, int window_bits, int mem_level,
|
||||
int strategy);
|
||||
|
||||
/* Quickly resets a compressor without having to reallocate anything. Same as calling mz_deflateEnd() followed by
|
||||
* mz_deflateInit()/mz_deflateInit2(). */
|
||||
MINIZ_EXPORT int mz_deflateReset(mz_streamp pStream);
|
||||
|
||||
/* mz_deflate() compresses the input to output, consuming as much of the input and producing as much output as possible.
|
||||
*/
|
||||
/* Parameters: */
|
||||
/* pStream is the stream to read from and write to. You must initialize/update the next_in, avail_in, next_out, and
|
||||
* avail_out members. */
|
||||
/* flush may be MZ_NO_FLUSH, MZ_PARTIAL_FLUSH/MZ_SYNC_FLUSH, MZ_FULL_FLUSH, or MZ_FINISH. */
|
||||
/* Return values: */
|
||||
/* MZ_OK on success (when flushing, or if more input is needed but not available, and/or there's more output to be
|
||||
* written but the output buffer is full). */
|
||||
/* MZ_STREAM_END if all input has been consumed and all output bytes have been written. Don't call mz_deflate() on the
|
||||
* stream anymore. */
|
||||
/* MZ_STREAM_ERROR if the stream is bogus. */
|
||||
/* MZ_PARAM_ERROR if one of the parameters is invalid. */
|
||||
/* MZ_BUF_ERROR if no forward progress is possible because the input and/or output buffers are empty. (Fill up the
|
||||
* input buffer or free up some output space and try again.) */
|
||||
MINIZ_EXPORT int mz_deflate(mz_streamp pStream, int flush);
|
||||
|
||||
/* mz_deflateEnd() deinitializes a compressor: */
|
||||
/* Return values: */
|
||||
/* MZ_OK on success. */
|
||||
/* MZ_STREAM_ERROR if the stream is bogus. */
|
||||
MINIZ_EXPORT int mz_deflateEnd(mz_streamp pStream);
|
||||
|
||||
/* mz_deflateBound() returns a (very) conservative upper bound on the amount of data that could be generated by
|
||||
* deflate(), assuming flush is set to only MZ_NO_FLUSH or MZ_FINISH. */
|
||||
MINIZ_EXPORT mz_ulong mz_deflateBound(mz_streamp pStream, mz_ulong source_len);
|
||||
|
||||
/* Single-call compression functions mz_compress() and mz_compress2(): */
|
||||
/* Returns MZ_OK on success, or one of the error codes from mz_deflate() on failure. */
|
||||
MINIZ_EXPORT int mz_compress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource,
|
||||
mz_ulong source_len);
|
||||
MINIZ_EXPORT int mz_compress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource,
|
||||
mz_ulong source_len, int level);
|
||||
|
||||
/* mz_compressBound() returns a (very) conservative upper bound on the amount of data that could be generated by calling
|
||||
* mz_compress(). */
|
||||
MINIZ_EXPORT mz_ulong mz_compressBound(mz_ulong source_len);
|
||||
|
||||
#endif /*#ifndef MINIZ_NO_DEFLATE_APIS*/
|
||||
|
||||
#ifndef MINIZ_NO_INFLATE_APIS
|
||||
|
||||
/* Initializes a decompressor. */
|
||||
MINIZ_EXPORT int mz_inflateInit(mz_streamp pStream);
|
||||
|
||||
/* mz_inflateInit2() is like mz_inflateInit() with an additional option that controls the window size and whether or not
|
||||
* the stream has been wrapped with a zlib header/footer: */
|
||||
/* window_bits must be MZ_DEFAULT_WINDOW_BITS (to parse zlib header/footer) or -MZ_DEFAULT_WINDOW_BITS (raw deflate). */
|
||||
MINIZ_EXPORT int mz_inflateInit2(mz_streamp pStream, int window_bits);
|
||||
|
||||
/* Quickly resets a compressor without having to reallocate anything. Same as calling mz_inflateEnd() followed by
|
||||
* mz_inflateInit()/mz_inflateInit2(). */
|
||||
MINIZ_EXPORT int mz_inflateReset(mz_streamp pStream);
|
||||
|
||||
/* Decompresses the input stream to the output, consuming only as much of the input as needed, and writing as much to
|
||||
* the output as possible. */
|
||||
/* Parameters: */
|
||||
/* pStream is the stream to read from and write to. You must initialize/update the next_in, avail_in, next_out, and
|
||||
* avail_out members. */
|
||||
/* flush may be MZ_NO_FLUSH, MZ_SYNC_FLUSH, or MZ_FINISH. */
|
||||
/* On the first call, if flush is MZ_FINISH it's assumed the input and output buffers are both sized large enough to
|
||||
* decompress the entire stream in a single call (this is slightly faster). */
|
||||
/* MZ_FINISH implies that there are no more source bytes available beside what's already in the input buffer, and that
|
||||
* the output buffer is large enough to hold the rest of the decompressed data. */
|
||||
/* Return values: */
|
||||
/* MZ_OK on success. Either more input is needed but not available, and/or there's more output to be written but the
|
||||
* output buffer is full. */
|
||||
/* MZ_STREAM_END if all needed input has been consumed and all output bytes have been written. For zlib streams, the
|
||||
* adler-32 of the decompressed data has also been verified. */
|
||||
/* MZ_STREAM_ERROR if the stream is bogus. */
|
||||
/* MZ_DATA_ERROR if the deflate stream is invalid. */
|
||||
/* MZ_PARAM_ERROR if one of the parameters is invalid. */
|
||||
/* MZ_BUF_ERROR if no forward progress is possible because the input buffer is empty but the inflater needs more input
|
||||
* to continue, or if the output buffer is not large enough. Call mz_inflate() again */
|
||||
/* with more input data, or with more room in the output buffer (except when using single call decompression,
|
||||
* described above). */
|
||||
MINIZ_EXPORT int mz_inflate(mz_streamp pStream, int flush);
|
||||
|
||||
/* Deinitializes a decompressor. */
|
||||
MINIZ_EXPORT int mz_inflateEnd(mz_streamp pStream);
|
||||
|
||||
/* Single-call decompression. */
|
||||
/* Returns MZ_OK on success, or one of the error codes from mz_inflate() on failure. */
|
||||
MINIZ_EXPORT int mz_uncompress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource,
|
||||
mz_ulong source_len);
|
||||
MINIZ_EXPORT int mz_uncompress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource,
|
||||
mz_ulong *pSource_len);
|
||||
#endif /*#ifndef MINIZ_NO_INFLATE_APIS*/
|
||||
|
||||
/* Returns a string description of the specified error code, or NULL if the error code is invalid. */
|
||||
MINIZ_EXPORT const char *mz_error(int err);
|
||||
|
||||
/* Redefine zlib-compatible names to miniz equivalents, so miniz.c can be used as a drop-in replacement for the subset
|
||||
* of zlib that miniz.c supports. */
|
||||
/* Define MINIZ_NO_ZLIB_COMPATIBLE_NAMES to disable zlib-compatibility if you use zlib in the same project. */
|
||||
#ifndef MINIZ_NO_ZLIB_COMPATIBLE_NAMES
|
||||
typedef unsigned char Byte;
|
||||
typedef unsigned int uInt;
|
||||
typedef mz_ulong uLong;
|
||||
typedef Byte Bytef;
|
||||
typedef uInt uIntf;
|
||||
typedef char charf;
|
||||
typedef int intf;
|
||||
typedef void *voidpf;
|
||||
typedef uLong uLongf;
|
||||
typedef void *voidp;
|
||||
typedef void *const voidpc;
|
||||
#define Z_NULL 0
|
||||
#define Z_NO_FLUSH MZ_NO_FLUSH
|
||||
#define Z_PARTIAL_FLUSH MZ_PARTIAL_FLUSH
|
||||
#define Z_SYNC_FLUSH MZ_SYNC_FLUSH
|
||||
#define Z_FULL_FLUSH MZ_FULL_FLUSH
|
||||
#define Z_FINISH MZ_FINISH
|
||||
#define Z_BLOCK MZ_BLOCK
|
||||
#define Z_OK MZ_OK
|
||||
#define Z_STREAM_END MZ_STREAM_END
|
||||
#define Z_NEED_DICT MZ_NEED_DICT
|
||||
#define Z_ERRNO MZ_ERRNO
|
||||
#define Z_STREAM_ERROR MZ_STREAM_ERROR
|
||||
#define Z_DATA_ERROR MZ_DATA_ERROR
|
||||
#define Z_MEM_ERROR MZ_MEM_ERROR
|
||||
#define Z_BUF_ERROR MZ_BUF_ERROR
|
||||
#define Z_VERSION_ERROR MZ_VERSION_ERROR
|
||||
#define Z_PARAM_ERROR MZ_PARAM_ERROR
|
||||
#define Z_NO_COMPRESSION MZ_NO_COMPRESSION
|
||||
#define Z_BEST_SPEED MZ_BEST_SPEED
|
||||
#define Z_BEST_COMPRESSION MZ_BEST_COMPRESSION
|
||||
#define Z_DEFAULT_COMPRESSION MZ_DEFAULT_COMPRESSION
|
||||
#define Z_DEFAULT_STRATEGY MZ_DEFAULT_STRATEGY
|
||||
#define Z_FILTERED MZ_FILTERED
|
||||
#define Z_HUFFMAN_ONLY MZ_HUFFMAN_ONLY
|
||||
#define Z_RLE MZ_RLE
|
||||
#define Z_FIXED MZ_FIXED
|
||||
#define Z_DEFLATED MZ_DEFLATED
|
||||
#define Z_DEFAULT_WINDOW_BITS MZ_DEFAULT_WINDOW_BITS
|
||||
/* See mz_alloc_func */
|
||||
typedef void *(*alloc_func)(void *opaque, size_t items, size_t size);
|
||||
/* See mz_free_func */
|
||||
typedef void (*free_func)(void *opaque, void *address);
|
||||
|
||||
#define internal_state mz_internal_state
|
||||
#define z_stream mz_stream
|
||||
|
||||
#ifndef MINIZ_NO_DEFLATE_APIS
|
||||
/* Compatiblity with zlib API. See called functions for documentation */
|
||||
static MZ_FORCEINLINE int deflateInit(mz_streamp pStream, int level) {
|
||||
return mz_deflateInit(pStream, level);
|
||||
}
|
||||
static MZ_FORCEINLINE int deflateInit2(mz_streamp pStream, int level, int method, int window_bits, int mem_level,
|
||||
int strategy) {
|
||||
return mz_deflateInit2(pStream, level, method, window_bits, mem_level, strategy);
|
||||
}
|
||||
static MZ_FORCEINLINE int deflateReset(mz_streamp pStream) {
|
||||
return mz_deflateReset(pStream);
|
||||
}
|
||||
static MZ_FORCEINLINE int deflate(mz_streamp pStream, int flush) {
|
||||
return mz_deflate(pStream, flush);
|
||||
}
|
||||
static MZ_FORCEINLINE int deflateEnd(mz_streamp pStream) {
|
||||
return mz_deflateEnd(pStream);
|
||||
}
|
||||
static MZ_FORCEINLINE mz_ulong deflateBound(mz_streamp pStream, mz_ulong source_len) {
|
||||
return mz_deflateBound(pStream, source_len);
|
||||
}
|
||||
static MZ_FORCEINLINE int compress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource,
|
||||
mz_ulong source_len) {
|
||||
return mz_compress(pDest, pDest_len, pSource, source_len);
|
||||
}
|
||||
static MZ_FORCEINLINE int compress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource,
|
||||
mz_ulong source_len, int level) {
|
||||
return mz_compress2(pDest, pDest_len, pSource, source_len, level);
|
||||
}
|
||||
static MZ_FORCEINLINE mz_ulong compressBound(mz_ulong source_len) {
|
||||
return mz_compressBound(source_len);
|
||||
}
|
||||
#endif /*#ifndef MINIZ_NO_DEFLATE_APIS*/
|
||||
|
||||
#ifndef MINIZ_NO_INFLATE_APIS
|
||||
/* Compatiblity with zlib API. See called functions for documentation */
|
||||
static MZ_FORCEINLINE int inflateInit(mz_streamp pStream) {
|
||||
return mz_inflateInit(pStream);
|
||||
}
|
||||
|
||||
static MZ_FORCEINLINE int inflateInit2(mz_streamp pStream, int window_bits) {
|
||||
return mz_inflateInit2(pStream, window_bits);
|
||||
}
|
||||
|
||||
static MZ_FORCEINLINE int inflateReset(mz_streamp pStream) {
|
||||
return mz_inflateReset(pStream);
|
||||
}
|
||||
|
||||
static MZ_FORCEINLINE int inflate(mz_streamp pStream, int flush) {
|
||||
return mz_inflate(pStream, flush);
|
||||
}
|
||||
|
||||
static MZ_FORCEINLINE int inflateEnd(mz_streamp pStream) {
|
||||
return mz_inflateEnd(pStream);
|
||||
}
|
||||
|
||||
static MZ_FORCEINLINE int uncompress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource,
|
||||
mz_ulong source_len) {
|
||||
return mz_uncompress(pDest, pDest_len, pSource, source_len);
|
||||
}
|
||||
|
||||
static MZ_FORCEINLINE int uncompress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource,
|
||||
mz_ulong *pSource_len) {
|
||||
return mz_uncompress2(pDest, pDest_len, pSource, pSource_len);
|
||||
}
|
||||
#endif /*#ifndef MINIZ_NO_INFLATE_APIS*/
|
||||
|
||||
static MZ_FORCEINLINE mz_ulong crc32(mz_ulong crc, const unsigned char *ptr, size_t buf_len) {
|
||||
return mz_crc32(crc, ptr, buf_len);
|
||||
}
|
||||
|
||||
static MZ_FORCEINLINE mz_ulong adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len) {
|
||||
return mz_adler32(adler, ptr, buf_len);
|
||||
}
|
||||
|
||||
#define MAX_WBITS 15
|
||||
#define MAX_MEM_LEVEL 9
|
||||
|
||||
static MZ_FORCEINLINE const char *zError(int err) {
|
||||
return mz_error(err);
|
||||
}
|
||||
#define ZLIB_VERSION MZ_VERSION
|
||||
#define ZLIB_VERNUM MZ_VERNUM
|
||||
#define ZLIB_VER_MAJOR MZ_VER_MAJOR
|
||||
#define ZLIB_VER_MINOR MZ_VER_MINOR
|
||||
#define ZLIB_VER_REVISION MZ_VER_REVISION
|
||||
#define ZLIB_VER_SUBREVISION MZ_VER_SUBREVISION
|
||||
|
||||
#define zlibVersion mz_version
|
||||
#define zlib_version mz_version()
|
||||
#endif /* #ifndef MINIZ_NO_ZLIB_COMPATIBLE_NAMES */
|
||||
|
||||
#endif /* MINIZ_NO_ZLIB_APIS */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#include "miniz_common.h"
|
||||
#include "miniz_tdef.h"
|
||||
#include "miniz_tinfl.h"
|
||||
#include "miniz_zip.h"
|
||||
90
clks/third_party/miniz/miniz_common.h
vendored
Normal file
90
clks/third_party/miniz/miniz_common.h
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
#pragma once
|
||||
#include <assert.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "miniz_export.h"
|
||||
|
||||
/* ------------------- Types and macros */
|
||||
typedef unsigned char mz_uint8;
|
||||
typedef int16_t mz_int16;
|
||||
typedef uint16_t mz_uint16;
|
||||
typedef uint32_t mz_uint32;
|
||||
typedef uint32_t mz_uint;
|
||||
typedef int64_t mz_int64;
|
||||
typedef uint64_t mz_uint64;
|
||||
typedef int mz_bool;
|
||||
|
||||
#define MZ_FALSE (0)
|
||||
#define MZ_TRUE (1)
|
||||
|
||||
/* Works around MSVC's spammy "warning C4127: conditional expression is constant" message. */
|
||||
#ifdef _MSC_VER
|
||||
#define MZ_MACRO_END while (0, 0)
|
||||
#else
|
||||
#define MZ_MACRO_END while (0)
|
||||
#endif
|
||||
|
||||
#ifdef MINIZ_NO_STDIO
|
||||
#define MZ_FILE void *
|
||||
#else
|
||||
#include <stdio.h>
|
||||
#define MZ_FILE FILE
|
||||
#endif /* #ifdef MINIZ_NO_STDIO */
|
||||
|
||||
#ifdef MINIZ_NO_TIME
|
||||
typedef struct mz_dummy_time_t_tag {
|
||||
mz_uint32 m_dummy1;
|
||||
mz_uint32 m_dummy2;
|
||||
} mz_dummy_time_t;
|
||||
#define MZ_TIME_T mz_dummy_time_t
|
||||
#else
|
||||
#define MZ_TIME_T time_t
|
||||
#endif
|
||||
|
||||
#define MZ_ASSERT(x) assert(x)
|
||||
|
||||
#ifdef MINIZ_NO_MALLOC
|
||||
#define MZ_MALLOC(x) NULL
|
||||
#define MZ_FREE(x) (void)x, ((void)0)
|
||||
#define MZ_REALLOC(p, x) NULL
|
||||
#else
|
||||
#define MZ_MALLOC(x) malloc(x)
|
||||
#define MZ_FREE(x) free(x)
|
||||
#define MZ_REALLOC(p, x) realloc(p, x)
|
||||
#endif
|
||||
|
||||
#define MZ_MAX(a, b) (((a) > (b)) ? (a) : (b))
|
||||
#define MZ_MIN(a, b) (((a) < (b)) ? (a) : (b))
|
||||
#define MZ_CLEAR_OBJ(obj) memset(&(obj), 0, sizeof(obj))
|
||||
#define MZ_CLEAR_ARR(obj) memset((obj), 0, sizeof(obj))
|
||||
#define MZ_CLEAR_PTR(obj) memset((obj), 0, sizeof(*obj))
|
||||
|
||||
#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN
|
||||
#define MZ_READ_LE16(p) *((const mz_uint16 *)(p))
|
||||
#define MZ_READ_LE32(p) *((const mz_uint32 *)(p))
|
||||
#else
|
||||
#define MZ_READ_LE16(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U))
|
||||
#define MZ_READ_LE32(p) \
|
||||
((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U) | \
|
||||
((mz_uint32)(((const mz_uint8 *)(p))[2]) << 16U) | ((mz_uint32)(((const mz_uint8 *)(p))[3]) << 24U))
|
||||
#endif
|
||||
|
||||
#define MZ_READ_LE64(p) \
|
||||
(((mz_uint64)MZ_READ_LE32(p)) | (((mz_uint64)MZ_READ_LE32((const mz_uint8 *)(p) + sizeof(mz_uint32))) << 32U))
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern MINIZ_EXPORT void *miniz_def_alloc_func(void *opaque, size_t items, size_t size);
|
||||
extern MINIZ_EXPORT void miniz_def_free_func(void *opaque, void *address);
|
||||
extern MINIZ_EXPORT void *miniz_def_realloc_func(void *opaque, void *address, size_t items, size_t size);
|
||||
|
||||
#define MZ_UINT16_MAX (0xFFFFU)
|
||||
#define MZ_UINT32_MAX (0xFFFFFFFFU)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
6
clks/third_party/miniz/miniz_export.h
vendored
Normal file
6
clks/third_party/miniz/miniz_export.h
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
#ifndef MINIZ_EXPORT_H
|
||||
#define MINIZ_EXPORT_H
|
||||
|
||||
#define MINIZ_EXPORT
|
||||
|
||||
#endif
|
||||
76
clks/third_party/miniz/miniz_support.c
vendored
Normal file
76
clks/third_party/miniz/miniz_support.c
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
#ifndef NDEBUG
|
||||
#define NDEBUG 1
|
||||
#endif
|
||||
|
||||
#ifndef MINIZ_NO_STDIO
|
||||
#define MINIZ_NO_STDIO 1
|
||||
#endif
|
||||
|
||||
#ifndef MINIZ_NO_INFLATE_APIS
|
||||
#define MINIZ_NO_INFLATE_APIS 1
|
||||
#endif
|
||||
|
||||
#ifndef MINIZ_NO_TIME
|
||||
#define MINIZ_NO_TIME 1
|
||||
#endif
|
||||
|
||||
#ifndef MINIZ_NO_MALLOC
|
||||
#define MINIZ_NO_MALLOC 1
|
||||
#endif
|
||||
|
||||
#ifndef MINIZ_NO_ZLIB_APIS
|
||||
#define MINIZ_NO_ZLIB_APIS 1
|
||||
#endif
|
||||
|
||||
#ifndef MINIZ_NO_ZLIB_COMPATIBLE_NAMES
|
||||
#define MINIZ_NO_ZLIB_COMPATIBLE_NAMES 1
|
||||
#endif
|
||||
|
||||
#include "miniz.h"
|
||||
|
||||
mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len) {
|
||||
mz_uint32 s1 = (mz_uint32)(adler & 0xFFFFU);
|
||||
mz_uint32 s2 = (mz_uint32)((adler >> 16) & 0xFFFFU);
|
||||
size_t i;
|
||||
|
||||
if (ptr == 0) {
|
||||
return MZ_ADLER32_INIT;
|
||||
}
|
||||
|
||||
for (i = 0; i < buf_len; i++) {
|
||||
s1 += (mz_uint32)ptr[i];
|
||||
if (s1 >= 65521U) {
|
||||
s1 -= 65521U;
|
||||
}
|
||||
|
||||
s2 += s1;
|
||||
if (s2 >= 65521U) {
|
||||
s2 -= 65521U;
|
||||
}
|
||||
}
|
||||
|
||||
return ((mz_ulong)s2 << 16) | (mz_ulong)s1;
|
||||
}
|
||||
|
||||
mz_ulong mz_crc32(mz_ulong crc, const unsigned char *ptr, size_t buf_len) {
|
||||
mz_uint32 cur = (mz_uint32)crc ^ 0xFFFFFFFFU;
|
||||
size_t i;
|
||||
unsigned int bit;
|
||||
|
||||
if (ptr == 0) {
|
||||
return MZ_CRC32_INIT;
|
||||
}
|
||||
|
||||
for (i = 0; i < buf_len; i++) {
|
||||
cur ^= (mz_uint32)ptr[i];
|
||||
for (bit = 0U; bit < 8U; bit++) {
|
||||
if ((cur & 1U) != 0U) {
|
||||
cur = (cur >> 1) ^ 0xEDB88320U;
|
||||
} else {
|
||||
cur >>= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return (mz_ulong)(cur ^ 0xFFFFFFFFU);
|
||||
}
|
||||
1506
clks/third_party/miniz/miniz_tdef.c
vendored
Normal file
1506
clks/third_party/miniz/miniz_tdef.c
vendored
Normal file
File diff suppressed because it is too large
Load Diff
206
clks/third_party/miniz/miniz_tdef.h
vendored
Normal file
206
clks/third_party/miniz/miniz_tdef.h
vendored
Normal file
@@ -0,0 +1,206 @@
|
||||
#pragma once
|
||||
#include "miniz_common.h"
|
||||
|
||||
#ifndef MINIZ_NO_DEFLATE_APIS
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
/* ------------------- Low-level Compression API Definitions */
|
||||
|
||||
/* Set TDEFL_LESS_MEMORY to 1 to use less memory (compression will be slightly slower, and raw/dynamic blocks will be
|
||||
* output more frequently). */
|
||||
#ifndef TDEFL_LESS_MEMORY
|
||||
#define TDEFL_LESS_MEMORY 0
|
||||
#endif
|
||||
|
||||
/* tdefl_init() compression flags logically OR'd together (low 12 bits contain the max. number of probes per dictionary
|
||||
* search): */
|
||||
/* TDEFL_DEFAULT_MAX_PROBES: The compressor defaults to 128 dictionary probes per dictionary search. 0=Huffman only,
|
||||
* 1=Huffman+LZ (fastest/crap compression), 4095=Huffman+LZ (slowest/best compression). */
|
||||
enum { TDEFL_HUFFMAN_ONLY = 0, TDEFL_DEFAULT_MAX_PROBES = 128, TDEFL_MAX_PROBES_MASK = 0xFFF };
|
||||
|
||||
/* TDEFL_WRITE_ZLIB_HEADER: If set, the compressor outputs a zlib header before the deflate data, and the Adler-32 of
|
||||
* the source data at the end. Otherwise, you'll get raw deflate data. */
|
||||
/* TDEFL_COMPUTE_ADLER32: Always compute the adler-32 of the input data (even when not writing zlib headers). */
|
||||
/* TDEFL_GREEDY_PARSING_FLAG: Set to use faster greedy parsing, instead of more efficient lazy parsing. */
|
||||
/* TDEFL_NONDETERMINISTIC_PARSING_FLAG: Enable to decrease the compressor's initialization time to the minimum, but the
|
||||
* output may vary from run to run given the same input (depending on the contents of memory). */
|
||||
/* TDEFL_RLE_MATCHES: Only look for RLE matches (matches with a distance of 1) */
|
||||
/* TDEFL_FILTER_MATCHES: Discards matches <= 5 chars if enabled. */
|
||||
/* TDEFL_FORCE_ALL_STATIC_BLOCKS: Disable usage of optimized Huffman tables. */
|
||||
/* TDEFL_FORCE_ALL_RAW_BLOCKS: Only use raw (uncompressed) deflate blocks. */
|
||||
/* The low 12 bits are reserved to control the max # of hash probes per dictionary lookup (see TDEFL_MAX_PROBES_MASK).
|
||||
*/
|
||||
enum {
|
||||
TDEFL_WRITE_ZLIB_HEADER = 0x01000,
|
||||
TDEFL_COMPUTE_ADLER32 = 0x02000,
|
||||
TDEFL_GREEDY_PARSING_FLAG = 0x04000,
|
||||
TDEFL_NONDETERMINISTIC_PARSING_FLAG = 0x08000,
|
||||
TDEFL_RLE_MATCHES = 0x10000,
|
||||
TDEFL_FILTER_MATCHES = 0x20000,
|
||||
TDEFL_FORCE_ALL_STATIC_BLOCKS = 0x40000,
|
||||
TDEFL_FORCE_ALL_RAW_BLOCKS = 0x80000
|
||||
};
|
||||
|
||||
/* High level compression functions: */
|
||||
/* tdefl_compress_mem_to_heap() compresses a block in memory to a heap block allocated via malloc(). */
|
||||
/* On entry: */
|
||||
/* pSrc_buf, src_buf_len: Pointer and size of source block to compress. */
|
||||
/* flags: The max match finder probes (default is 128) logically OR'd against the above flags. Higher probes are slower
|
||||
* but improve compression. */
|
||||
/* On return: */
|
||||
/* Function returns a pointer to the compressed data, or NULL on failure. */
|
||||
/* *pOut_len will be set to the compressed data's size, which could be larger than src_buf_len on uncompressible data.
|
||||
*/
|
||||
/* The caller must free() the returned block when it's no longer needed. */
|
||||
MINIZ_EXPORT void *tdefl_compress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags);
|
||||
|
||||
/* tdefl_compress_mem_to_mem() compresses a block in memory to another block in memory. */
|
||||
/* Returns 0 on failure. */
|
||||
MINIZ_EXPORT size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf,
|
||||
size_t src_buf_len, int flags);
|
||||
|
||||
/* Compresses an image to a compressed PNG file in memory. */
|
||||
/* On entry: */
|
||||
/* pImage, w, h, and num_chans describe the image to compress. num_chans may be 1, 2, 3, or 4. */
|
||||
/* The image pitch in bytes per scanline will be w*num_chans. The leftmost pixel on the top scanline is stored first in
|
||||
* memory. */
|
||||
/* level may range from [0,10], use MZ_NO_COMPRESSION, MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc. or a decent default is
|
||||
* MZ_DEFAULT_LEVEL */
|
||||
/* If flip is true, the image will be flipped on the Y axis (useful for OpenGL apps). */
|
||||
/* On return: */
|
||||
/* Function returns a pointer to the compressed data, or NULL on failure. */
|
||||
/* *pLen_out will be set to the size of the PNG image file. */
|
||||
/* The caller must mz_free() the returned heap block (which will typically be larger than *pLen_out) when it's no
|
||||
* longer needed. */
|
||||
MINIZ_EXPORT void *tdefl_write_image_to_png_file_in_memory_ex(const void *pImage, int w, int h, int num_chans,
|
||||
size_t *pLen_out, mz_uint level, mz_bool flip);
|
||||
MINIZ_EXPORT void *tdefl_write_image_to_png_file_in_memory(const void *pImage, int w, int h, int num_chans,
|
||||
size_t *pLen_out);
|
||||
|
||||
/* Output stream interface. The compressor uses this interface to write compressed data. It'll typically be called
|
||||
* TDEFL_OUT_BUF_SIZE at a time. */
|
||||
typedef mz_bool (*tdefl_put_buf_func_ptr)(const void *pBuf, int len, void *pUser);
|
||||
|
||||
/* tdefl_compress_mem_to_output() compresses a block to an output stream. The above helpers use this function
|
||||
* internally. */
|
||||
MINIZ_EXPORT mz_bool tdefl_compress_mem_to_output(const void *pBuf, size_t buf_len,
|
||||
tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags);
|
||||
|
||||
enum {
|
||||
TDEFL_MAX_HUFF_TABLES = 3,
|
||||
TDEFL_MAX_HUFF_SYMBOLS_0 = 288,
|
||||
TDEFL_MAX_HUFF_SYMBOLS_1 = 32,
|
||||
TDEFL_MAX_HUFF_SYMBOLS_2 = 19,
|
||||
TDEFL_LZ_DICT_SIZE = 32768,
|
||||
TDEFL_LZ_DICT_SIZE_MASK = TDEFL_LZ_DICT_SIZE - 1,
|
||||
TDEFL_MIN_MATCH_LEN = 3,
|
||||
TDEFL_MAX_MATCH_LEN = 258
|
||||
};
|
||||
|
||||
/* TDEFL_OUT_BUF_SIZE MUST be large enough to hold a single entire compressed output block (using static/fixed Huffman
|
||||
* codes). */
|
||||
#if TDEFL_LESS_MEMORY
|
||||
enum {
|
||||
TDEFL_LZ_CODE_BUF_SIZE = 24 * 1024,
|
||||
TDEFL_OUT_BUF_SIZE = (TDEFL_LZ_CODE_BUF_SIZE * 13) / 10,
|
||||
TDEFL_MAX_HUFF_SYMBOLS = 288,
|
||||
TDEFL_LZ_HASH_BITS = 12,
|
||||
TDEFL_LEVEL1_HASH_SIZE_MASK = 4095,
|
||||
TDEFL_LZ_HASH_SHIFT = (TDEFL_LZ_HASH_BITS + 2) / 3,
|
||||
TDEFL_LZ_HASH_SIZE = 1 << TDEFL_LZ_HASH_BITS
|
||||
};
|
||||
#else
|
||||
enum {
|
||||
TDEFL_LZ_CODE_BUF_SIZE = 64 * 1024,
|
||||
TDEFL_OUT_BUF_SIZE = (mz_uint)((TDEFL_LZ_CODE_BUF_SIZE * 13) / 10),
|
||||
TDEFL_MAX_HUFF_SYMBOLS = 288,
|
||||
TDEFL_LZ_HASH_BITS = 15,
|
||||
TDEFL_LEVEL1_HASH_SIZE_MASK = 4095,
|
||||
TDEFL_LZ_HASH_SHIFT = (TDEFL_LZ_HASH_BITS + 2) / 3,
|
||||
TDEFL_LZ_HASH_SIZE = 1 << TDEFL_LZ_HASH_BITS
|
||||
};
|
||||
#endif
|
||||
|
||||
/* The low-level tdefl functions below may be used directly if the above helper functions aren't flexible enough. The
|
||||
* low-level functions don't make any heap allocations, unlike the above helper functions. */
|
||||
typedef enum {
|
||||
TDEFL_STATUS_BAD_PARAM = -2,
|
||||
TDEFL_STATUS_PUT_BUF_FAILED = -1,
|
||||
TDEFL_STATUS_OKAY = 0,
|
||||
TDEFL_STATUS_DONE = 1
|
||||
} tdefl_status;
|
||||
|
||||
/* Must map to MZ_NO_FLUSH, MZ_SYNC_FLUSH, etc. enums */
|
||||
typedef enum { TDEFL_NO_FLUSH = 0, TDEFL_SYNC_FLUSH = 2, TDEFL_FULL_FLUSH = 3, TDEFL_FINISH = 4 } tdefl_flush;
|
||||
|
||||
/* tdefl's compression state structure. */
|
||||
typedef struct {
|
||||
tdefl_put_buf_func_ptr m_pPut_buf_func;
|
||||
void *m_pPut_buf_user;
|
||||
mz_uint m_flags, m_max_probes[2];
|
||||
int m_greedy_parsing;
|
||||
mz_uint m_adler32, m_lookahead_pos, m_lookahead_size, m_dict_size;
|
||||
mz_uint8 *m_pLZ_code_buf, *m_pLZ_flags, *m_pOutput_buf, *m_pOutput_buf_end;
|
||||
mz_uint m_num_flags_left, m_total_lz_bytes, m_lz_code_buf_dict_pos, m_bits_in, m_bit_buffer;
|
||||
mz_uint m_saved_match_dist, m_saved_match_len, m_saved_lit, m_output_flush_ofs, m_output_flush_remaining,
|
||||
m_finished, m_block_index, m_wants_to_finish;
|
||||
tdefl_status m_prev_return_status;
|
||||
const void *m_pIn_buf;
|
||||
void *m_pOut_buf;
|
||||
size_t *m_pIn_buf_size, *m_pOut_buf_size;
|
||||
tdefl_flush m_flush;
|
||||
const mz_uint8 *m_pSrc;
|
||||
size_t m_src_buf_left, m_out_buf_ofs;
|
||||
mz_uint8 m_dict[TDEFL_LZ_DICT_SIZE + TDEFL_MAX_MATCH_LEN - 1];
|
||||
mz_uint16 m_huff_count[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS];
|
||||
mz_uint16 m_huff_codes[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS];
|
||||
mz_uint8 m_huff_code_sizes[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS];
|
||||
mz_uint8 m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE];
|
||||
mz_uint16 m_next[TDEFL_LZ_DICT_SIZE];
|
||||
mz_uint16 m_hash[TDEFL_LZ_HASH_SIZE];
|
||||
mz_uint8 m_output_buf[TDEFL_OUT_BUF_SIZE];
|
||||
} tdefl_compressor;
|
||||
|
||||
/* Initializes the compressor. */
|
||||
/* There is no corresponding deinit() function because the tdefl API's do not dynamically allocate memory. */
|
||||
/* pBut_buf_func: If NULL, output data will be supplied to the specified callback. In this case, the user should call
|
||||
* the tdefl_compress_buffer() API for compression. */
|
||||
/* If pBut_buf_func is NULL the user should always call the tdefl_compress() API. */
|
||||
/* flags: See the above enums (TDEFL_HUFFMAN_ONLY, TDEFL_WRITE_ZLIB_HEADER, etc.) */
|
||||
MINIZ_EXPORT tdefl_status tdefl_init(tdefl_compressor *d, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user,
|
||||
int flags);
|
||||
|
||||
/* Compresses a block of data, consuming as much of the specified input buffer as possible, and writing as much
|
||||
* compressed data to the specified output buffer as possible. */
|
||||
MINIZ_EXPORT tdefl_status tdefl_compress(tdefl_compressor *d, const void *pIn_buf, size_t *pIn_buf_size, void *pOut_buf,
|
||||
size_t *pOut_buf_size, tdefl_flush flush);
|
||||
|
||||
/* tdefl_compress_buffer() is only usable when the tdefl_init() is called with a non-NULL tdefl_put_buf_func_ptr. */
|
||||
/* tdefl_compress_buffer() always consumes the entire input buffer. */
|
||||
MINIZ_EXPORT tdefl_status tdefl_compress_buffer(tdefl_compressor *d, const void *pIn_buf, size_t in_buf_size,
|
||||
tdefl_flush flush);
|
||||
|
||||
MINIZ_EXPORT tdefl_status tdefl_get_prev_return_status(tdefl_compressor *d);
|
||||
MINIZ_EXPORT mz_uint32 tdefl_get_adler32(tdefl_compressor *d);
|
||||
|
||||
/* Create tdefl_compress() flags given zlib-style compression parameters. */
|
||||
/* level may range from [0,10] (where 10 is absolute max compression, but may be much slower on some files) */
|
||||
/* window_bits may be -15 (raw deflate) or 15 (zlib) */
|
||||
/* strategy may be either MZ_DEFAULT_STRATEGY, MZ_FILTERED, MZ_HUFFMAN_ONLY, MZ_RLE, or MZ_FIXED */
|
||||
MINIZ_EXPORT mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy);
|
||||
|
||||
#ifndef MINIZ_NO_MALLOC
|
||||
/* Allocate the tdefl_compressor structure in C so that */
|
||||
/* non-C language bindings to tdefl_ API don't need to worry about */
|
||||
/* structure size and allocation mechanism. */
|
||||
MINIZ_EXPORT tdefl_compressor *tdefl_compressor_alloc(void);
|
||||
MINIZ_EXPORT void tdefl_compressor_free(tdefl_compressor *pComp);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /*#ifndef MINIZ_NO_DEFLATE_APIS*/
|
||||
168
clks/third_party/miniz/miniz_tinfl.h
vendored
Normal file
168
clks/third_party/miniz/miniz_tinfl.h
vendored
Normal file
@@ -0,0 +1,168 @@
|
||||
#pragma once
|
||||
#include "miniz_common.h"
|
||||
/* ------------------- Low-level Decompression API Definitions */
|
||||
|
||||
#ifndef MINIZ_NO_INFLATE_APIS
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
/* Decompression flags used by tinfl_decompress(). */
|
||||
/* TINFL_FLAG_PARSE_ZLIB_HEADER: If set, the input has a valid zlib header and ends with an adler32 checksum (it's a
|
||||
* valid zlib stream). Otherwise, the input is a raw deflate stream. */
|
||||
/* TINFL_FLAG_HAS_MORE_INPUT: If set, there are more input bytes available beyond the end of the supplied input buffer.
|
||||
* If clear, the input buffer contains all remaining input. */
|
||||
/* TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF: If set, the output buffer is large enough to hold the entire decompressed
|
||||
* stream. If clear, the output buffer is at least the size of the dictionary (typically 32KB). */
|
||||
/* TINFL_FLAG_COMPUTE_ADLER32: Force adler-32 checksum computation of the decompressed bytes. */
|
||||
enum {
|
||||
TINFL_FLAG_PARSE_ZLIB_HEADER = 1,
|
||||
TINFL_FLAG_HAS_MORE_INPUT = 2,
|
||||
TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF = 4,
|
||||
TINFL_FLAG_COMPUTE_ADLER32 = 8
|
||||
};
|
||||
|
||||
/* High level decompression functions: */
|
||||
/* tinfl_decompress_mem_to_heap() decompresses a block in memory to a heap block allocated via malloc(). */
|
||||
/* On entry: */
|
||||
/* pSrc_buf, src_buf_len: Pointer and size of the Deflate or zlib source data to decompress. */
|
||||
/* On return: */
|
||||
/* Function returns a pointer to the decompressed data, or NULL on failure. */
|
||||
/* *pOut_len will be set to the decompressed data's size, which could be larger than src_buf_len on uncompressible
|
||||
* data. */
|
||||
/* The caller must call mz_free() on the returned block when it's no longer needed. */
|
||||
MINIZ_EXPORT void *tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags);
|
||||
|
||||
/* tinfl_decompress_mem_to_mem() decompresses a block in memory to another block in memory. */
|
||||
/* Returns TINFL_DECOMPRESS_MEM_TO_MEM_FAILED on failure, or the number of bytes written on success. */
|
||||
#define TINFL_DECOMPRESS_MEM_TO_MEM_FAILED ((size_t)(-1))
|
||||
MINIZ_EXPORT size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf,
|
||||
size_t src_buf_len, int flags);
|
||||
|
||||
/* tinfl_decompress_mem_to_callback() decompresses a block in memory to an internal 32KB buffer, and a user provided
|
||||
* callback function will be called to flush the buffer. */
|
||||
/* Returns 1 on success or 0 on failure. */
|
||||
typedef int (*tinfl_put_buf_func_ptr)(const void *pBuf, int len, void *pUser);
|
||||
MINIZ_EXPORT int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size,
|
||||
tinfl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags);
|
||||
|
||||
struct tinfl_decompressor_tag;
|
||||
typedef struct tinfl_decompressor_tag tinfl_decompressor;
|
||||
|
||||
#ifndef MINIZ_NO_MALLOC
|
||||
/* Allocate the tinfl_decompressor structure in C so that */
|
||||
/* non-C language bindings to tinfl_ API don't need to worry about */
|
||||
/* structure size and allocation mechanism. */
|
||||
MINIZ_EXPORT tinfl_decompressor *tinfl_decompressor_alloc(void);
|
||||
MINIZ_EXPORT void tinfl_decompressor_free(tinfl_decompressor *pDecomp);
|
||||
#endif
|
||||
|
||||
/* Max size of LZ dictionary. */
|
||||
#define TINFL_LZ_DICT_SIZE 32768
|
||||
|
||||
/* Return status. */
|
||||
typedef enum {
|
||||
/* This flags indicates the inflator needs 1 or more input bytes to make forward progress, but the caller is
|
||||
indicating that no more are available. The compressed data */
|
||||
/* is probably corrupted. If you call the inflator again with more bytes it'll try to continue processing the input
|
||||
but this is a BAD sign (either the data is corrupted or you called it incorrectly). */
|
||||
/* If you call it again with no input you'll just get TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS again. */
|
||||
TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS = -4,
|
||||
|
||||
/* This flag indicates that one or more of the input parameters was obviously bogus. (You can try calling it again,
|
||||
but if you get this error the calling code is wrong.) */
|
||||
TINFL_STATUS_BAD_PARAM = -3,
|
||||
|
||||
/* This flags indicate the inflator is finished but the adler32 check of the uncompressed data didn't match. If you
|
||||
call it again it'll return TINFL_STATUS_DONE. */
|
||||
TINFL_STATUS_ADLER32_MISMATCH = -2,
|
||||
|
||||
/* This flags indicate the inflator has somehow failed (bad code, corrupted input, etc.). If you call it again
|
||||
without resetting via tinfl_init() it it'll just keep on returning the same status failure code. */
|
||||
TINFL_STATUS_FAILED = -1,
|
||||
|
||||
/* Any status code less than TINFL_STATUS_DONE must indicate a failure. */
|
||||
|
||||
/* This flag indicates the inflator has returned every byte of uncompressed data that it can, has consumed every
|
||||
byte that it needed, has successfully reached the end of the deflate stream, and */
|
||||
/* if zlib headers and adler32 checking enabled that it has successfully checked the uncompressed data's adler32. If
|
||||
you call it again you'll just get TINFL_STATUS_DONE over and over again. */
|
||||
TINFL_STATUS_DONE = 0,
|
||||
|
||||
/* This flag indicates the inflator MUST have more input data (even 1 byte) before it can make any more forward
|
||||
progress, or you need to clear the TINFL_FLAG_HAS_MORE_INPUT */
|
||||
/* flag on the next call if you don't have any more source data. If the source data was somehow corrupted it's also
|
||||
possible (but unlikely) for the inflator to keep on demanding input to */
|
||||
/* proceed, so be sure to properly set the TINFL_FLAG_HAS_MORE_INPUT flag. */
|
||||
TINFL_STATUS_NEEDS_MORE_INPUT = 1,
|
||||
|
||||
/* This flag indicates the inflator definitely has 1 or more bytes of uncompressed data available, but it cannot
|
||||
write this data into the output buffer. */
|
||||
/* Note if the source compressed data was corrupted it's possible for the inflator to return a lot of uncompressed
|
||||
data to the caller. I've been assuming you know how much uncompressed data to expect */
|
||||
/* (either exact or worst case) and will stop calling the inflator and fail after receiving too much. In pure
|
||||
streaming scenarios where you have no idea how many bytes to expect this may not be possible */
|
||||
/* so I may need to add some code to address this. */
|
||||
TINFL_STATUS_HAS_MORE_OUTPUT = 2
|
||||
} tinfl_status;
|
||||
|
||||
/* Initializes the decompressor to its initial state. */
|
||||
#define tinfl_init(r) \
|
||||
do { \
|
||||
(r)->m_state = 0; \
|
||||
} \
|
||||
MZ_MACRO_END
|
||||
#define tinfl_get_adler32(r) (r)->m_check_adler32
|
||||
|
||||
/* Main low-level decompressor coroutine function. This is the only function actually needed for decompression. All the
|
||||
* other functions are just high-level helpers for improved usability. */
|
||||
/* This is a universal API, i.e. it can be used as a building block to build any desired higher level decompression API.
|
||||
* In the limit case, it can be called once per every byte input or output. */
|
||||
MINIZ_EXPORT tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_next, size_t *pIn_buf_size,
|
||||
mz_uint8 *pOut_buf_start, mz_uint8 *pOut_buf_next, size_t *pOut_buf_size,
|
||||
const mz_uint32 decomp_flags);
|
||||
|
||||
/* Internal/private bits follow. */
|
||||
enum {
|
||||
TINFL_MAX_HUFF_TABLES = 3,
|
||||
TINFL_MAX_HUFF_SYMBOLS_0 = 288,
|
||||
TINFL_MAX_HUFF_SYMBOLS_1 = 32,
|
||||
TINFL_MAX_HUFF_SYMBOLS_2 = 19,
|
||||
TINFL_FAST_LOOKUP_BITS = 10,
|
||||
TINFL_FAST_LOOKUP_SIZE = 1 << TINFL_FAST_LOOKUP_BITS
|
||||
};
|
||||
|
||||
#if MINIZ_HAS_64BIT_REGISTERS
|
||||
#define TINFL_USE_64BIT_BITBUF 1
|
||||
#else
|
||||
#define TINFL_USE_64BIT_BITBUF 0
|
||||
#endif
|
||||
|
||||
#if TINFL_USE_64BIT_BITBUF
|
||||
typedef mz_uint64 tinfl_bit_buf_t;
|
||||
#define TINFL_BITBUF_SIZE (64)
|
||||
#else
|
||||
typedef mz_uint32 tinfl_bit_buf_t;
|
||||
#define TINFL_BITBUF_SIZE (32)
|
||||
#endif
|
||||
|
||||
struct tinfl_decompressor_tag {
|
||||
mz_uint32 m_state, m_num_bits, m_zhdr0, m_zhdr1, m_z_adler32, m_final, m_type, m_check_adler32, m_dist, m_counter,
|
||||
m_num_extra, m_table_sizes[TINFL_MAX_HUFF_TABLES];
|
||||
tinfl_bit_buf_t m_bit_buf;
|
||||
size_t m_dist_from_out_buf_start;
|
||||
mz_int16 m_look_up[TINFL_MAX_HUFF_TABLES][TINFL_FAST_LOOKUP_SIZE];
|
||||
mz_int16 m_tree_0[TINFL_MAX_HUFF_SYMBOLS_0 * 2];
|
||||
mz_int16 m_tree_1[TINFL_MAX_HUFF_SYMBOLS_1 * 2];
|
||||
mz_int16 m_tree_2[TINFL_MAX_HUFF_SYMBOLS_2 * 2];
|
||||
mz_uint8 m_code_size_0[TINFL_MAX_HUFF_SYMBOLS_0];
|
||||
mz_uint8 m_code_size_1[TINFL_MAX_HUFF_SYMBOLS_1];
|
||||
mz_uint8 m_code_size_2[TINFL_MAX_HUFF_SYMBOLS_2];
|
||||
mz_uint8 m_raw_header[4], m_len_codes[TINFL_MAX_HUFF_SYMBOLS_0 + TINFL_MAX_HUFF_SYMBOLS_1 + 137];
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /*#ifndef MINIZ_NO_INFLATE_APIS*/
|
||||
523
clks/third_party/miniz/miniz_zip.h
vendored
Normal file
523
clks/third_party/miniz/miniz_zip.h
vendored
Normal file
@@ -0,0 +1,523 @@
|
||||
|
||||
#pragma once
|
||||
#include "miniz_common.h"
|
||||
|
||||
/* ------------------- ZIP archive reading/writing */
|
||||
|
||||
#ifndef MINIZ_NO_ARCHIVE_APIS
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
enum {
|
||||
/* Note: These enums can be reduced as needed to save memory or stack space - they are pretty conservative. */
|
||||
MZ_ZIP_MAX_IO_BUF_SIZE = 64 * 1024,
|
||||
MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE = 512,
|
||||
MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE = 512
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
/* Central directory file index. */
|
||||
mz_uint32 m_file_index;
|
||||
|
||||
/* Byte offset of this entry in the archive's central directory. Note we currently only support up to UINT_MAX or
|
||||
* less bytes in the central dir. */
|
||||
mz_uint64 m_central_dir_ofs;
|
||||
|
||||
/* These fields are copied directly from the zip's central dir. */
|
||||
mz_uint16 m_version_made_by;
|
||||
mz_uint16 m_version_needed;
|
||||
mz_uint16 m_bit_flag;
|
||||
mz_uint16 m_method;
|
||||
|
||||
/* CRC-32 of uncompressed data. */
|
||||
mz_uint32 m_crc32;
|
||||
|
||||
/* File's compressed size. */
|
||||
mz_uint64 m_comp_size;
|
||||
|
||||
/* File's uncompressed size. Note, I've seen some old archives where directory entries had 512 bytes for their
|
||||
* uncompressed sizes, but when you try to unpack them you actually get 0 bytes. */
|
||||
mz_uint64 m_uncomp_size;
|
||||
|
||||
/* Zip internal and external file attributes. */
|
||||
mz_uint16 m_internal_attr;
|
||||
mz_uint32 m_external_attr;
|
||||
|
||||
/* Entry's local header file offset in bytes. */
|
||||
mz_uint64 m_local_header_ofs;
|
||||
|
||||
/* Size of comment in bytes. */
|
||||
mz_uint32 m_comment_size;
|
||||
|
||||
/* MZ_TRUE if the entry appears to be a directory. */
|
||||
mz_bool m_is_directory;
|
||||
|
||||
/* MZ_TRUE if the entry uses encryption/strong encryption (which miniz_zip doesn't support) */
|
||||
mz_bool m_is_encrypted;
|
||||
|
||||
/* MZ_TRUE if the file is not encrypted, a patch file, and if it uses a compression method we support. */
|
||||
mz_bool m_is_supported;
|
||||
|
||||
/* Filename. If string ends in '/' it's a subdirectory entry. */
|
||||
/* Guaranteed to be zero terminated, may be truncated to fit. */
|
||||
char m_filename[MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE];
|
||||
|
||||
/* Comment field. */
|
||||
/* Guaranteed to be zero terminated, may be truncated to fit. */
|
||||
char m_comment[MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE];
|
||||
|
||||
#ifdef MINIZ_NO_TIME
|
||||
MZ_TIME_T m_padding;
|
||||
#else
|
||||
MZ_TIME_T m_time;
|
||||
#endif
|
||||
} mz_zip_archive_file_stat;
|
||||
|
||||
typedef size_t (*mz_file_read_func)(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n);
|
||||
typedef size_t (*mz_file_write_func)(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n);
|
||||
typedef mz_bool (*mz_file_needs_keepalive)(void *pOpaque);
|
||||
|
||||
struct mz_zip_internal_state_tag;
|
||||
typedef struct mz_zip_internal_state_tag mz_zip_internal_state;
|
||||
|
||||
typedef enum {
|
||||
MZ_ZIP_MODE_INVALID = 0,
|
||||
MZ_ZIP_MODE_READING = 1,
|
||||
MZ_ZIP_MODE_WRITING = 2,
|
||||
MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED = 3
|
||||
} mz_zip_mode;
|
||||
|
||||
typedef enum {
|
||||
MZ_ZIP_FLAG_CASE_SENSITIVE = 0x0100,
|
||||
MZ_ZIP_FLAG_IGNORE_PATH = 0x0200,
|
||||
MZ_ZIP_FLAG_COMPRESSED_DATA = 0x0400,
|
||||
MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY = 0x0800,
|
||||
MZ_ZIP_FLAG_VALIDATE_LOCATE_FILE_FLAG =
|
||||
0x1000, /* if enabled, mz_zip_reader_locate_file() will be called on each file as its validated to ensure the
|
||||
func finds the file in the central dir (intended for testing) */
|
||||
MZ_ZIP_FLAG_VALIDATE_HEADERS_ONLY =
|
||||
0x2000, /* validate the local headers, but don't decompress the entire file and check the crc32 */
|
||||
MZ_ZIP_FLAG_WRITE_ZIP64 =
|
||||
0x4000, /* always use the zip64 file format, instead of the original zip file format with automatic switch to
|
||||
zip64. Use as flags parameter with mz_zip_writer_init*_v2 */
|
||||
MZ_ZIP_FLAG_WRITE_ALLOW_READING = 0x8000,
|
||||
MZ_ZIP_FLAG_ASCII_FILENAME = 0x10000,
|
||||
/*After adding a compressed file, seek back
|
||||
to local file header and set the correct sizes*/
|
||||
MZ_ZIP_FLAG_WRITE_HEADER_SET_SIZE = 0x20000,
|
||||
MZ_ZIP_FLAG_READ_ALLOW_WRITING = 0x40000
|
||||
} mz_zip_flags;
|
||||
|
||||
typedef enum {
|
||||
MZ_ZIP_TYPE_INVALID = 0,
|
||||
MZ_ZIP_TYPE_USER,
|
||||
MZ_ZIP_TYPE_MEMORY,
|
||||
MZ_ZIP_TYPE_HEAP,
|
||||
MZ_ZIP_TYPE_FILE,
|
||||
MZ_ZIP_TYPE_CFILE,
|
||||
MZ_ZIP_TOTAL_TYPES
|
||||
} mz_zip_type;
|
||||
|
||||
/* miniz error codes. Be sure to update mz_zip_get_error_string() if you add or modify this enum. */
|
||||
typedef enum {
|
||||
MZ_ZIP_NO_ERROR = 0,
|
||||
MZ_ZIP_UNDEFINED_ERROR,
|
||||
MZ_ZIP_TOO_MANY_FILES,
|
||||
MZ_ZIP_FILE_TOO_LARGE,
|
||||
MZ_ZIP_UNSUPPORTED_METHOD,
|
||||
MZ_ZIP_UNSUPPORTED_ENCRYPTION,
|
||||
MZ_ZIP_UNSUPPORTED_FEATURE,
|
||||
MZ_ZIP_FAILED_FINDING_CENTRAL_DIR,
|
||||
MZ_ZIP_NOT_AN_ARCHIVE,
|
||||
MZ_ZIP_INVALID_HEADER_OR_CORRUPTED,
|
||||
MZ_ZIP_UNSUPPORTED_MULTIDISK,
|
||||
MZ_ZIP_DECOMPRESSION_FAILED,
|
||||
MZ_ZIP_COMPRESSION_FAILED,
|
||||
MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE,
|
||||
MZ_ZIP_CRC_CHECK_FAILED,
|
||||
MZ_ZIP_UNSUPPORTED_CDIR_SIZE,
|
||||
MZ_ZIP_ALLOC_FAILED,
|
||||
MZ_ZIP_FILE_OPEN_FAILED,
|
||||
MZ_ZIP_FILE_CREATE_FAILED,
|
||||
MZ_ZIP_FILE_WRITE_FAILED,
|
||||
MZ_ZIP_FILE_READ_FAILED,
|
||||
MZ_ZIP_FILE_CLOSE_FAILED,
|
||||
MZ_ZIP_FILE_SEEK_FAILED,
|
||||
MZ_ZIP_FILE_STAT_FAILED,
|
||||
MZ_ZIP_INVALID_PARAMETER,
|
||||
MZ_ZIP_INVALID_FILENAME,
|
||||
MZ_ZIP_BUF_TOO_SMALL,
|
||||
MZ_ZIP_INTERNAL_ERROR,
|
||||
MZ_ZIP_FILE_NOT_FOUND,
|
||||
MZ_ZIP_ARCHIVE_TOO_LARGE,
|
||||
MZ_ZIP_VALIDATION_FAILED,
|
||||
MZ_ZIP_WRITE_CALLBACK_FAILED,
|
||||
MZ_ZIP_TOTAL_ERRORS
|
||||
} mz_zip_error;
|
||||
|
||||
typedef struct {
|
||||
mz_uint64 m_archive_size;
|
||||
mz_uint64 m_central_directory_file_ofs;
|
||||
|
||||
/* We only support up to UINT32_MAX files in zip64 mode. */
|
||||
mz_uint32 m_total_files;
|
||||
mz_zip_mode m_zip_mode;
|
||||
mz_zip_type m_zip_type;
|
||||
mz_zip_error m_last_error;
|
||||
|
||||
mz_uint64 m_file_offset_alignment;
|
||||
|
||||
mz_alloc_func m_pAlloc;
|
||||
mz_free_func m_pFree;
|
||||
mz_realloc_func m_pRealloc;
|
||||
void *m_pAlloc_opaque;
|
||||
|
||||
mz_file_read_func m_pRead;
|
||||
mz_file_write_func m_pWrite;
|
||||
mz_file_needs_keepalive m_pNeeds_keepalive;
|
||||
void *m_pIO_opaque;
|
||||
|
||||
mz_zip_internal_state *m_pState;
|
||||
|
||||
} mz_zip_archive;
|
||||
|
||||
typedef struct {
|
||||
mz_zip_archive *pZip;
|
||||
mz_uint flags;
|
||||
|
||||
int status;
|
||||
|
||||
mz_uint64 read_buf_size, read_buf_ofs, read_buf_avail, comp_remaining, out_buf_ofs, cur_file_ofs;
|
||||
mz_zip_archive_file_stat file_stat;
|
||||
void *pRead_buf;
|
||||
void *pWrite_buf;
|
||||
|
||||
size_t out_blk_remain;
|
||||
|
||||
tinfl_decompressor inflator;
|
||||
|
||||
#ifdef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS
|
||||
mz_uint padding;
|
||||
#else
|
||||
mz_uint file_crc32;
|
||||
#endif
|
||||
|
||||
} mz_zip_reader_extract_iter_state;
|
||||
|
||||
/* -------- ZIP reading */
|
||||
|
||||
/* Inits a ZIP archive reader. */
|
||||
/* These functions read and validate the archive's central directory. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_init(mz_zip_archive *pZip, mz_uint64 size, mz_uint flags);
|
||||
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_init_mem(mz_zip_archive *pZip, const void *pMem, size_t size, mz_uint flags);
|
||||
|
||||
#ifndef MINIZ_NO_STDIO
|
||||
/* Read a archive from a disk file. */
|
||||
/* file_start_ofs is the file offset where the archive actually begins, or 0. */
|
||||
/* actual_archive_size is the true total size of the archive, which may be smaller than the file's actual size on disk.
|
||||
* If zero the entire file is treated as the archive. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint32 flags);
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_init_file_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint flags,
|
||||
mz_uint64 file_start_ofs, mz_uint64 archive_size);
|
||||
|
||||
/* Read an archive from an already opened FILE, beginning at the current file position. */
|
||||
/* The archive is assumed to be archive_size bytes long. If archive_size is 0, then the entire rest of the file is
|
||||
* assumed to contain the archive. */
|
||||
/* The FILE will NOT be closed when mz_zip_reader_end() is called. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_init_cfile(mz_zip_archive *pZip, MZ_FILE *pFile, mz_uint64 archive_size,
|
||||
mz_uint flags);
|
||||
#endif
|
||||
|
||||
/* Ends archive reading, freeing all allocations, and closing the input archive file if mz_zip_reader_init_file() was
|
||||
* used. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_end(mz_zip_archive *pZip);
|
||||
|
||||
/* -------- ZIP reading or writing */
|
||||
|
||||
/* Clears a mz_zip_archive struct to all zeros. */
|
||||
/* Important: This must be done before passing the struct to any mz_zip functions. */
|
||||
MINIZ_EXPORT void mz_zip_zero_struct(mz_zip_archive *pZip);
|
||||
|
||||
MINIZ_EXPORT mz_zip_mode mz_zip_get_mode(mz_zip_archive *pZip);
|
||||
MINIZ_EXPORT mz_zip_type mz_zip_get_type(mz_zip_archive *pZip);
|
||||
|
||||
/* Returns the total number of files in the archive. */
|
||||
MINIZ_EXPORT mz_uint mz_zip_reader_get_num_files(mz_zip_archive *pZip);
|
||||
|
||||
MINIZ_EXPORT mz_uint64 mz_zip_get_archive_size(mz_zip_archive *pZip);
|
||||
MINIZ_EXPORT mz_uint64 mz_zip_get_archive_file_start_offset(mz_zip_archive *pZip);
|
||||
MINIZ_EXPORT MZ_FILE *mz_zip_get_cfile(mz_zip_archive *pZip);
|
||||
|
||||
/* Reads n bytes of raw archive data, starting at file offset file_ofs, to pBuf. */
|
||||
MINIZ_EXPORT size_t mz_zip_read_archive_data(mz_zip_archive *pZip, mz_uint64 file_ofs, void *pBuf, size_t n);
|
||||
|
||||
/* All mz_zip funcs set the m_last_error field in the mz_zip_archive struct. These functions retrieve/manipulate this
|
||||
* field. */
|
||||
/* Note that the m_last_error functionality is not thread safe. */
|
||||
MINIZ_EXPORT mz_zip_error mz_zip_set_last_error(mz_zip_archive *pZip, mz_zip_error err_num);
|
||||
MINIZ_EXPORT mz_zip_error mz_zip_peek_last_error(mz_zip_archive *pZip);
|
||||
MINIZ_EXPORT mz_zip_error mz_zip_clear_last_error(mz_zip_archive *pZip);
|
||||
MINIZ_EXPORT mz_zip_error mz_zip_get_last_error(mz_zip_archive *pZip);
|
||||
MINIZ_EXPORT const char *mz_zip_get_error_string(mz_zip_error mz_err);
|
||||
|
||||
/* MZ_TRUE if the archive file entry is a directory entry. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_is_file_a_directory(mz_zip_archive *pZip, mz_uint file_index);
|
||||
|
||||
/* MZ_TRUE if the file is encrypted/strong encrypted. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_is_file_encrypted(mz_zip_archive *pZip, mz_uint file_index);
|
||||
|
||||
/* MZ_TRUE if the compression method is supported, and the file is not encrypted, and the file is not a compressed patch
|
||||
* file. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_is_file_supported(mz_zip_archive *pZip, mz_uint file_index);
|
||||
|
||||
/* Retrieves the filename of an archive file entry. */
|
||||
/* Returns the number of bytes written to pFilename, or if filename_buf_size is 0 this function returns the number of
|
||||
* bytes needed to fully store the filename. */
|
||||
MINIZ_EXPORT mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_index, char *pFilename,
|
||||
mz_uint filename_buf_size);
|
||||
|
||||
/* Attempts to locates a file in the archive's central directory. */
|
||||
/* Valid flags: MZ_ZIP_FLAG_CASE_SENSITIVE, MZ_ZIP_FLAG_IGNORE_PATH */
|
||||
/* Returns -1 if the file cannot be found. */
|
||||
MINIZ_EXPORT int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment,
|
||||
mz_uint flags);
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_locate_file_v2(mz_zip_archive *pZip, const char *pName, const char *pComment,
|
||||
mz_uint flags, mz_uint32 *file_index);
|
||||
|
||||
/* Returns detailed information about an archive file entry. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index, mz_zip_archive_file_stat *pStat);
|
||||
|
||||
/* MZ_TRUE if the file is in zip64 format. */
|
||||
/* A file is considered zip64 if it contained a zip64 end of central directory marker, or if it contained any zip64
|
||||
* extended file information fields in the central directory. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_is_zip64(mz_zip_archive *pZip);
|
||||
|
||||
/* Returns the total central directory size in bytes. */
|
||||
/* The current max supported size is <= MZ_UINT32_MAX. */
|
||||
MINIZ_EXPORT size_t mz_zip_get_central_dir_size(mz_zip_archive *pZip);
|
||||
|
||||
/* Extracts a archive file to a memory buffer using no memory allocation. */
|
||||
/* There must be at least enough room on the stack to store the inflator's state (~34KB or so). */
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_extract_to_mem_no_alloc(mz_zip_archive *pZip, mz_uint file_index, void *pBuf,
|
||||
size_t buf_size, mz_uint flags, void *pUser_read_buf,
|
||||
size_t user_read_buf_size);
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_extract_file_to_mem_no_alloc(mz_zip_archive *pZip, const char *pFilename, void *pBuf,
|
||||
size_t buf_size, mz_uint flags, void *pUser_read_buf,
|
||||
size_t user_read_buf_size);
|
||||
|
||||
/* Extracts a archive file to a memory buffer. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_extract_to_mem(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size,
|
||||
mz_uint flags);
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_extract_file_to_mem(mz_zip_archive *pZip, const char *pFilename, void *pBuf,
|
||||
size_t buf_size, mz_uint flags);
|
||||
|
||||
/* Extracts a archive file to a dynamically allocated heap buffer. */
|
||||
/* The memory will be allocated via the mz_zip_archive's alloc/realloc functions. */
|
||||
/* Returns NULL and sets the last error on failure. */
|
||||
MINIZ_EXPORT void *mz_zip_reader_extract_to_heap(mz_zip_archive *pZip, mz_uint file_index, size_t *pSize,
|
||||
mz_uint flags);
|
||||
MINIZ_EXPORT void *mz_zip_reader_extract_file_to_heap(mz_zip_archive *pZip, const char *pFilename, size_t *pSize,
|
||||
mz_uint flags);
|
||||
|
||||
/* Extracts a archive file using a callback function to output the file's data. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_extract_to_callback(mz_zip_archive *pZip, mz_uint file_index,
|
||||
mz_file_write_func pCallback, void *pOpaque, mz_uint flags);
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_extract_file_to_callback(mz_zip_archive *pZip, const char *pFilename,
|
||||
mz_file_write_func pCallback, void *pOpaque, mz_uint flags);
|
||||
|
||||
/* Extract a file iteratively */
|
||||
MINIZ_EXPORT mz_zip_reader_extract_iter_state *mz_zip_reader_extract_iter_new(mz_zip_archive *pZip, mz_uint file_index,
|
||||
mz_uint flags);
|
||||
MINIZ_EXPORT mz_zip_reader_extract_iter_state *
|
||||
mz_zip_reader_extract_file_iter_new(mz_zip_archive *pZip, const char *pFilename, mz_uint flags);
|
||||
MINIZ_EXPORT size_t mz_zip_reader_extract_iter_read(mz_zip_reader_extract_iter_state *pState, void *pvBuf,
|
||||
size_t buf_size);
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_extract_iter_free(mz_zip_reader_extract_iter_state *pState);
|
||||
|
||||
#ifndef MINIZ_NO_STDIO
|
||||
/* Extracts a archive file to a disk file and sets its last accessed and modified times. */
|
||||
/* This function only extracts files, not archive directory records. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_extract_to_file(mz_zip_archive *pZip, mz_uint file_index, const char *pDst_filename,
|
||||
mz_uint flags);
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_extract_file_to_file(mz_zip_archive *pZip, const char *pArchive_filename,
|
||||
const char *pDst_filename, mz_uint flags);
|
||||
|
||||
/* Extracts a archive file starting at the current position in the destination FILE stream. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_extract_to_cfile(mz_zip_archive *pZip, mz_uint file_index, MZ_FILE *File,
|
||||
mz_uint flags);
|
||||
MINIZ_EXPORT mz_bool mz_zip_reader_extract_file_to_cfile(mz_zip_archive *pZip, const char *pArchive_filename,
|
||||
MZ_FILE *pFile, mz_uint flags);
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
/* TODO */
|
||||
typedef void *mz_zip_streaming_extract_state_ptr;
|
||||
mz_zip_streaming_extract_state_ptr mz_zip_streaming_extract_begin(mz_zip_archive *pZip, mz_uint file_index, mz_uint flags);
|
||||
mz_uint64 mz_zip_streaming_extract_get_size(mz_zip_archive *pZip, mz_zip_streaming_extract_state_ptr pState);
|
||||
mz_uint64 mz_zip_streaming_extract_get_cur_ofs(mz_zip_archive *pZip, mz_zip_streaming_extract_state_ptr pState);
|
||||
mz_bool mz_zip_streaming_extract_seek(mz_zip_archive *pZip, mz_zip_streaming_extract_state_ptr pState, mz_uint64 new_ofs);
|
||||
size_t mz_zip_streaming_extract_read(mz_zip_archive *pZip, mz_zip_streaming_extract_state_ptr pState, void *pBuf, size_t buf_size);
|
||||
mz_bool mz_zip_streaming_extract_end(mz_zip_archive *pZip, mz_zip_streaming_extract_state_ptr pState);
|
||||
#endif
|
||||
|
||||
/* This function compares the archive's local headers, the optional local zip64 extended information block, and the
|
||||
* optional descriptor following the compressed data vs. the data in the central directory. */
|
||||
/* It also validates that each file can be successfully uncompressed unless the MZ_ZIP_FLAG_VALIDATE_HEADERS_ONLY is
|
||||
* specified. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_validate_file(mz_zip_archive *pZip, mz_uint file_index, mz_uint flags);
|
||||
|
||||
/* Validates an entire archive by calling mz_zip_validate_file() on each file. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_validate_archive(mz_zip_archive *pZip, mz_uint flags);
|
||||
|
||||
/* Misc utils/helpers, valid for ZIP reading or writing */
|
||||
MINIZ_EXPORT mz_bool mz_zip_validate_mem_archive(const void *pMem, size_t size, mz_uint flags, mz_zip_error *pErr);
|
||||
#ifndef MINIZ_NO_STDIO
|
||||
MINIZ_EXPORT mz_bool mz_zip_validate_file_archive(const char *pFilename, mz_uint flags, mz_zip_error *pErr);
|
||||
#endif
|
||||
|
||||
/* Universal end function - calls either mz_zip_reader_end() or mz_zip_writer_end(). */
|
||||
MINIZ_EXPORT mz_bool mz_zip_end(mz_zip_archive *pZip);
|
||||
|
||||
/* -------- ZIP writing */
|
||||
|
||||
#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS
|
||||
|
||||
/* Inits a ZIP archive writer. */
|
||||
/*Set pZip->m_pWrite (and pZip->m_pIO_opaque) before calling mz_zip_writer_init or mz_zip_writer_init_v2*/
|
||||
/*The output is streamable, i.e. file_ofs in mz_file_write_func always increases only by n*/
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_init(mz_zip_archive *pZip, mz_uint64 existing_size);
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_init_v2(mz_zip_archive *pZip, mz_uint64 existing_size, mz_uint flags);
|
||||
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning,
|
||||
size_t initial_allocation_size);
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_init_heap_v2(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning,
|
||||
size_t initial_allocation_size, mz_uint flags);
|
||||
|
||||
#ifndef MINIZ_NO_STDIO
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilename,
|
||||
mz_uint64 size_to_reserve_at_beginning);
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_init_file_v2(mz_zip_archive *pZip, const char *pFilename,
|
||||
mz_uint64 size_to_reserve_at_beginning, mz_uint flags);
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_init_cfile(mz_zip_archive *pZip, MZ_FILE *pFile, mz_uint flags);
|
||||
#endif
|
||||
|
||||
/* Converts a ZIP archive reader object into a writer object, to allow efficient in-place file appends to occur on an
|
||||
* existing archive. */
|
||||
/* For archives opened using mz_zip_reader_init_file, pFilename must be the archive's filename so it can be reopened for
|
||||
* writing. If the file can't be reopened, mz_zip_reader_end() will be called. */
|
||||
/* For archives opened using mz_zip_reader_init_mem, the memory block must be growable using the realloc callback (which
|
||||
* defaults to realloc unless you've overridden it). */
|
||||
/* Finally, for archives opened using mz_zip_reader_init, the mz_zip_archive's user provided m_pWrite function cannot be
|
||||
* NULL. */
|
||||
/* Note: In-place archive modification is not recommended unless you know what you're doing, because if execution stops
|
||||
* or something goes wrong before */
|
||||
/* the archive is finalized the file's central directory will be hosed. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_init_from_reader(mz_zip_archive *pZip, const char *pFilename);
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_init_from_reader_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint flags);
|
||||
|
||||
/* Adds the contents of a memory buffer to an archive. These functions record the current local time into the archive.
|
||||
*/
|
||||
/* To add a directory entry, call this method with an archive name ending in a forwardslash with an empty buffer. */
|
||||
/* level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or
|
||||
* more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf,
|
||||
size_t buf_size, mz_uint level_and_flags);
|
||||
|
||||
/* Like mz_zip_writer_add_mem(), except you can specify a file comment field, and optionally supply the function with
|
||||
* already compressed data. */
|
||||
/* uncomp_size/uncomp_crc32 are only used if the MZ_ZIP_FLAG_COMPRESSED_DATA flag is specified. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf,
|
||||
size_t buf_size, const void *pComment, mz_uint16 comment_size,
|
||||
mz_uint level_and_flags, mz_uint64 uncomp_size, mz_uint32 uncomp_crc32);
|
||||
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_add_mem_ex_v2(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf,
|
||||
size_t buf_size, const void *pComment, mz_uint16 comment_size,
|
||||
mz_uint level_and_flags, mz_uint64 uncomp_size, mz_uint32 uncomp_crc32,
|
||||
MZ_TIME_T *last_modified, const char *user_extra_data_local,
|
||||
mz_uint user_extra_data_local_len, const char *user_extra_data_central,
|
||||
mz_uint user_extra_data_central_len);
|
||||
|
||||
/* Adds the contents of a file to an archive. This function also records the disk file's modified time into the archive.
|
||||
*/
|
||||
/* File data is supplied via a read callback function. User mz_zip_writer_add_(c)file to add a file directly.*/
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_add_read_buf_callback(
|
||||
mz_zip_archive *pZip, const char *pArchive_name, mz_file_read_func read_callback, void *callback_opaque,
|
||||
mz_uint64 max_size, const MZ_TIME_T *pFile_time, const void *pComment, mz_uint16 comment_size,
|
||||
mz_uint level_and_flags, const char *user_extra_data_local, mz_uint user_extra_data_local_len,
|
||||
const char *user_extra_data_central, mz_uint user_extra_data_central_len);
|
||||
|
||||
#ifndef MINIZ_NO_STDIO
|
||||
/* Adds the contents of a disk file to an archive. This function also records the disk file's modified time into the
|
||||
* archive. */
|
||||
/* level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or
|
||||
* more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name, const char *pSrc_filename,
|
||||
const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags);
|
||||
|
||||
/* Like mz_zip_writer_add_file(), except the file data is read from the specified FILE stream. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_add_cfile(mz_zip_archive *pZip, const char *pArchive_name, MZ_FILE *pSrc_file,
|
||||
mz_uint64 max_size, const MZ_TIME_T *pFile_time, const void *pComment,
|
||||
mz_uint16 comment_size, mz_uint level_and_flags,
|
||||
const char *user_extra_data_local, mz_uint user_extra_data_local_len,
|
||||
const char *user_extra_data_central, mz_uint user_extra_data_central_len);
|
||||
#endif
|
||||
|
||||
/* Adds a file to an archive by fully cloning the data from another archive. */
|
||||
/* This function fully clones the source file's compressed data (no recompression), along with its full filename, extra
|
||||
* data (it may add or modify the zip64 local header extra data field), and the optional descriptor following the
|
||||
* compressed data. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_add_from_zip_reader(mz_zip_archive *pZip, mz_zip_archive *pSource_zip,
|
||||
mz_uint src_file_index);
|
||||
|
||||
/* Finalizes the archive by writing the central directory records followed by the end of central directory record. */
|
||||
/* After an archive is finalized, the only valid call on the mz_zip_archive struct is mz_zip_writer_end(). */
|
||||
/* An archive must be manually finalized by calling this function for it to be valid. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip);
|
||||
|
||||
/* Finalizes a heap archive, returning a pointer to the heap block and its size. */
|
||||
/* The heap block will be allocated using the mz_zip_archive's alloc/realloc callbacks. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_finalize_heap_archive(mz_zip_archive *pZip, void **ppBuf, size_t *pSize);
|
||||
|
||||
/* Ends archive writing, freeing all allocations, and closing the output file if mz_zip_writer_init_file() was used. */
|
||||
/* Note for the archive to be valid, it *must* have been finalized before ending (this function will not do it for you).
|
||||
*/
|
||||
MINIZ_EXPORT mz_bool mz_zip_writer_end(mz_zip_archive *pZip);
|
||||
|
||||
/* -------- Misc. high-level helper functions: */
|
||||
|
||||
/* mz_zip_add_mem_to_archive_file_in_place() efficiently (but not atomically) appends a memory blob to a ZIP archive. */
|
||||
/* Note this is NOT a fully safe operation. If it crashes or dies in some way your archive can be left in a screwed up
|
||||
* state (without a central directory). */
|
||||
/* level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or
|
||||
* more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION. */
|
||||
/* TODO: Perhaps add an option to leave the existing central dir in place in case the add dies? We could then truncate
|
||||
* the file (so the old central dir would be at the end) if something goes wrong. */
|
||||
MINIZ_EXPORT mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name,
|
||||
const void *pBuf, size_t buf_size, const void *pComment,
|
||||
mz_uint16 comment_size, mz_uint level_and_flags);
|
||||
MINIZ_EXPORT mz_bool mz_zip_add_mem_to_archive_file_in_place_v2(const char *pZip_filename, const char *pArchive_name,
|
||||
const void *pBuf, size_t buf_size, const void *pComment,
|
||||
mz_uint16 comment_size, mz_uint level_and_flags,
|
||||
mz_zip_error *pErr);
|
||||
|
||||
#ifndef MINIZ_NO_STDIO
|
||||
/* Reads a single file from an archive into a heap block. */
|
||||
/* If pComment is not NULL, only the file with the specified comment will be extracted. */
|
||||
/* Returns NULL on failure. */
|
||||
MINIZ_EXPORT void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name,
|
||||
size_t *pSize, mz_uint flags);
|
||||
MINIZ_EXPORT void *mz_zip_extract_archive_file_to_heap_v2(const char *pZip_filename, const char *pArchive_name,
|
||||
const char *pComment, size_t *pSize, mz_uint flags,
|
||||
mz_zip_error *pErr);
|
||||
#endif
|
||||
|
||||
#endif /* #ifndef MINIZ_NO_ARCHIVE_WRITING_APIS */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* MINIZ_NO_ARCHIVE_APIS */
|
||||
1030
clks/third_party/qrcodegen/qrcodegen.c
vendored
Normal file
1030
clks/third_party/qrcodegen/qrcodegen.c
vendored
Normal file
File diff suppressed because it is too large
Load Diff
363
clks/third_party/qrcodegen/qrcodegen.h
vendored
Normal file
363
clks/third_party/qrcodegen/qrcodegen.h
vendored
Normal file
@@ -0,0 +1,363 @@
|
||||
/*
|
||||
* QR Code generator library (C)
|
||||
*
|
||||
* Copyright (c) Project Nayuki. (MIT License)
|
||||
* https://www.nayuki.io/page/qr-code-generator-library
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
* the Software without restriction, including without limitation the rights to
|
||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
* the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
* - The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
* - The Software is provided "as is", without warranty of any kind, express or
|
||||
* implied, including but not limited to the warranties of merchantability,
|
||||
* fitness for a particular purpose and noninfringement. In no event shall the
|
||||
* authors or copyright holders be liable for any claim, damages or other
|
||||
* liability, whether in an action of contract, tort or otherwise, arising from,
|
||||
* out of or in connection with the Software or the use or other dealings in the
|
||||
* Software.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This library creates QR Code symbols, which is a type of two-dimension barcode.
|
||||
* Invented by Denso Wave and described in the ISO/IEC 18004 standard.
|
||||
* A QR Code structure is an immutable square grid of dark and light cells.
|
||||
* The library provides functions to create a QR Code from text or binary data.
|
||||
* The library covers the QR Code Model 2 specification, supporting all versions (sizes)
|
||||
* from 1 to 40, all 4 error correction levels, and 4 character encoding modes.
|
||||
*
|
||||
* Ways to create a QR Code object:
|
||||
* - High level: Take the payload data and call qrcodegen_encodeText() or qrcodegen_encodeBinary().
|
||||
* - Low level: Custom-make the list of segments and call
|
||||
* qrcodegen_encodeSegments() or qrcodegen_encodeSegmentsAdvanced().
|
||||
* (Note that all ways require supplying the desired error correction level and various byte buffers.)
|
||||
*/
|
||||
|
||||
/*---- Enum and struct types----*/
|
||||
|
||||
/*
|
||||
* The error correction level in a QR Code symbol.
|
||||
*/
|
||||
enum qrcodegen_Ecc {
|
||||
// Must be declared in ascending order of error protection
|
||||
// so that an internal qrcodegen function works properly
|
||||
qrcodegen_Ecc_LOW = 0, // The QR Code can tolerate about 7% erroneous codewords
|
||||
qrcodegen_Ecc_MEDIUM, // The QR Code can tolerate about 15% erroneous codewords
|
||||
qrcodegen_Ecc_QUARTILE, // The QR Code can tolerate about 25% erroneous codewords
|
||||
qrcodegen_Ecc_HIGH, // The QR Code can tolerate about 30% erroneous codewords
|
||||
};
|
||||
|
||||
/*
|
||||
* The mask pattern used in a QR Code symbol.
|
||||
*/
|
||||
enum qrcodegen_Mask {
|
||||
// A special value to tell the QR Code encoder to
|
||||
// automatically select an appropriate mask pattern
|
||||
qrcodegen_Mask_AUTO = -1,
|
||||
// The eight actual mask patterns
|
||||
qrcodegen_Mask_0 = 0,
|
||||
qrcodegen_Mask_1,
|
||||
qrcodegen_Mask_2,
|
||||
qrcodegen_Mask_3,
|
||||
qrcodegen_Mask_4,
|
||||
qrcodegen_Mask_5,
|
||||
qrcodegen_Mask_6,
|
||||
qrcodegen_Mask_7,
|
||||
};
|
||||
|
||||
/*
|
||||
* Describes how a segment's data bits are interpreted.
|
||||
*/
|
||||
enum qrcodegen_Mode {
|
||||
qrcodegen_Mode_NUMERIC = 0x1,
|
||||
qrcodegen_Mode_ALPHANUMERIC = 0x2,
|
||||
qrcodegen_Mode_BYTE = 0x4,
|
||||
qrcodegen_Mode_KANJI = 0x8,
|
||||
qrcodegen_Mode_ECI = 0x7,
|
||||
};
|
||||
|
||||
/*
|
||||
* A segment of character/binary/control data in a QR Code symbol.
|
||||
* The mid-level way to create a segment is to take the payload data
|
||||
* and call a factory function such as qrcodegen_makeNumeric().
|
||||
* The low-level way to create a segment is to custom-make the bit buffer
|
||||
* and initialize a qrcodegen_Segment struct with appropriate values.
|
||||
* Even in the most favorable conditions, a QR Code can only hold 7089 characters of data.
|
||||
* Any segment longer than this is meaningless for the purpose of generating QR Codes.
|
||||
* Moreover, the maximum allowed bit length is 32767 because
|
||||
* the largest QR Code (version 40) has 31329 modules.
|
||||
*/
|
||||
struct qrcodegen_Segment {
|
||||
// The mode indicator of this segment.
|
||||
enum qrcodegen_Mode mode;
|
||||
|
||||
// The length of this segment's unencoded data. Measured in characters for
|
||||
// numeric/alphanumeric/kanji mode, bytes for byte mode, and 0 for ECI mode.
|
||||
// Always zero or positive. Not the same as the data's bit length.
|
||||
int numChars;
|
||||
|
||||
// The data bits of this segment, packed in bitwise big endian.
|
||||
// Can be null if the bit length is zero.
|
||||
uint8_t *data;
|
||||
|
||||
// The number of valid data bits used in the buffer. Requires
|
||||
// 0 <= bitLength <= 32767, and bitLength <= (capacity of data array) * 8.
|
||||
// The character count (numChars) must agree with the mode and the bit buffer length.
|
||||
int bitLength;
|
||||
};
|
||||
|
||||
/*---- Macro constants and functions ----*/
|
||||
|
||||
#define qrcodegen_VERSION_MIN 1 // The minimum version number supported in the QR Code Model 2 standard
|
||||
#define qrcodegen_VERSION_MAX 40 // The maximum version number supported in the QR Code Model 2 standard
|
||||
|
||||
// Calculates the number of bytes needed to store any QR Code up to and including the given version number,
|
||||
// as a compile-time constant. For example, 'uint8_t buffer[qrcodegen_BUFFER_LEN_FOR_VERSION(25)];'
|
||||
// can store any single QR Code from version 1 to 25 (inclusive). The result fits in an int (or int16).
|
||||
// Requires qrcodegen_VERSION_MIN <= n <= qrcodegen_VERSION_MAX.
|
||||
#define qrcodegen_BUFFER_LEN_FOR_VERSION(n) ((((n) * 4 + 17) * ((n) * 4 + 17) + 7) / 8 + 1)
|
||||
|
||||
// The worst-case number of bytes needed to store one QR Code, up to and including
|
||||
// version 40. This value equals 3918, which is just under 4 kilobytes.
|
||||
// Use this more convenient value to avoid calculating tighter memory bounds for buffers.
|
||||
#define qrcodegen_BUFFER_LEN_MAX qrcodegen_BUFFER_LEN_FOR_VERSION(qrcodegen_VERSION_MAX)
|
||||
|
||||
/*---- Functions (high level) to generate QR Codes ----*/
|
||||
|
||||
/*
|
||||
* Encodes the given text string to a QR Code, returning true if successful.
|
||||
* If the data is too long to fit in any version in the given range
|
||||
* at the given ECC level, then false is returned.
|
||||
*
|
||||
* The input text must be encoded in UTF-8 and contain no NULs.
|
||||
* Requires 1 <= minVersion <= maxVersion <= 40.
|
||||
*
|
||||
* The smallest possible QR Code version within the given range is automatically
|
||||
* chosen for the output. Iff boostEcl is true, then the ECC level of the result
|
||||
* may be higher than the ecl argument if it can be done without increasing the
|
||||
* version. The mask is either between qrcodegen_Mask_0 to 7 to force that mask, or
|
||||
* qrcodegen_Mask_AUTO to automatically choose an appropriate mask (which may be slow).
|
||||
*
|
||||
* About the arrays, letting len = qrcodegen_BUFFER_LEN_FOR_VERSION(maxVersion):
|
||||
* - Before calling the function:
|
||||
* - The array ranges tempBuffer[0 : len] and qrcode[0 : len] must allow
|
||||
* reading and writing; hence each array must have a length of at least len.
|
||||
* - The two ranges must not overlap (aliasing).
|
||||
* - The initial state of both ranges can be uninitialized
|
||||
* because the function always writes before reading.
|
||||
* - After the function returns:
|
||||
* - Both ranges have no guarantee on which elements are initialized and what values are stored.
|
||||
* - tempBuffer contains no useful data and should be treated as entirely uninitialized.
|
||||
* - If successful, qrcode can be passed into qrcodegen_getSize() and qrcodegen_getModule().
|
||||
*
|
||||
* If successful, the resulting QR Code may use numeric,
|
||||
* alphanumeric, or byte mode to encode the text.
|
||||
*
|
||||
* In the most optimistic case, a QR Code at version 40 with low ECC
|
||||
* can hold any UTF-8 string up to 2953 bytes, or any alphanumeric string
|
||||
* up to 4296 characters, or any digit string up to 7089 characters.
|
||||
* These numbers represent the hard upper limit of the QR Code standard.
|
||||
*
|
||||
* Please consult the QR Code specification for information on
|
||||
* data capacities per version, ECC level, and text encoding mode.
|
||||
*/
|
||||
bool qrcodegen_encodeText(const char *text, uint8_t tempBuffer[], uint8_t qrcode[], enum qrcodegen_Ecc ecl,
|
||||
int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl);
|
||||
|
||||
/*
|
||||
* Encodes the given binary data to a QR Code, returning true if successful.
|
||||
* If the data is too long to fit in any version in the given range
|
||||
* at the given ECC level, then false is returned.
|
||||
*
|
||||
* Requires 1 <= minVersion <= maxVersion <= 40.
|
||||
*
|
||||
* The smallest possible QR Code version within the given range is automatically
|
||||
* chosen for the output. Iff boostEcl is true, then the ECC level of the result
|
||||
* may be higher than the ecl argument if it can be done without increasing the
|
||||
* version. The mask is either between qrcodegen_Mask_0 to 7 to force that mask, or
|
||||
* qrcodegen_Mask_AUTO to automatically choose an appropriate mask (which may be slow).
|
||||
*
|
||||
* About the arrays, letting len = qrcodegen_BUFFER_LEN_FOR_VERSION(maxVersion):
|
||||
* - Before calling the function:
|
||||
* - The array ranges dataAndTemp[0 : len] and qrcode[0 : len] must allow
|
||||
* reading and writing; hence each array must have a length of at least len.
|
||||
* - The two ranges must not overlap (aliasing).
|
||||
* - The input array range dataAndTemp[0 : dataLen] should normally be
|
||||
* valid UTF-8 text, but is not required by the QR Code standard.
|
||||
* - The initial state of dataAndTemp[dataLen : len] and qrcode[0 : len]
|
||||
* can be uninitialized because the function always writes before reading.
|
||||
* - After the function returns:
|
||||
* - Both ranges have no guarantee on which elements are initialized and what values are stored.
|
||||
* - dataAndTemp contains no useful data and should be treated as entirely uninitialized.
|
||||
* - If successful, qrcode can be passed into qrcodegen_getSize() and qrcodegen_getModule().
|
||||
*
|
||||
* If successful, the resulting QR Code will use byte mode to encode the data.
|
||||
*
|
||||
* In the most optimistic case, a QR Code at version 40 with low ECC can hold any byte
|
||||
* sequence up to length 2953. This is the hard upper limit of the QR Code standard.
|
||||
*
|
||||
* Please consult the QR Code specification for information on
|
||||
* data capacities per version, ECC level, and text encoding mode.
|
||||
*/
|
||||
bool qrcodegen_encodeBinary(uint8_t dataAndTemp[], size_t dataLen, uint8_t qrcode[], enum qrcodegen_Ecc ecl,
|
||||
int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl);
|
||||
|
||||
/*---- Functions (low level) to generate QR Codes ----*/
|
||||
|
||||
/*
|
||||
* Encodes the given segments to a QR Code, returning true if successful.
|
||||
* If the data is too long to fit in any version at the given ECC level,
|
||||
* then false is returned.
|
||||
*
|
||||
* The smallest possible QR Code version is automatically chosen for
|
||||
* the output. The ECC level of the result may be higher than the
|
||||
* ecl argument if it can be done without increasing the version.
|
||||
*
|
||||
* About the byte arrays, letting len = qrcodegen_BUFFER_LEN_FOR_VERSION(qrcodegen_VERSION_MAX):
|
||||
* - Before calling the function:
|
||||
* - The array ranges tempBuffer[0 : len] and qrcode[0 : len] must allow
|
||||
* reading and writing; hence each array must have a length of at least len.
|
||||
* - The two ranges must not overlap (aliasing).
|
||||
* - The initial state of both ranges can be uninitialized
|
||||
* because the function always writes before reading.
|
||||
* - The input array segs can contain segments whose data buffers overlap with tempBuffer.
|
||||
* - After the function returns:
|
||||
* - Both ranges have no guarantee on which elements are initialized and what values are stored.
|
||||
* - tempBuffer contains no useful data and should be treated as entirely uninitialized.
|
||||
* - Any segment whose data buffer overlaps with tempBuffer[0 : len]
|
||||
* must be treated as having invalid values in that array.
|
||||
* - If successful, qrcode can be passed into qrcodegen_getSize() and qrcodegen_getModule().
|
||||
*
|
||||
* Please consult the QR Code specification for information on
|
||||
* data capacities per version, ECC level, and text encoding mode.
|
||||
*
|
||||
* This function allows the user to create a custom sequence of segments that switches
|
||||
* between modes (such as alphanumeric and byte) to encode text in less space.
|
||||
* This is a low-level API; the high-level API is qrcodegen_encodeText() and qrcodegen_encodeBinary().
|
||||
*/
|
||||
bool qrcodegen_encodeSegments(const struct qrcodegen_Segment segs[], size_t len, enum qrcodegen_Ecc ecl,
|
||||
uint8_t tempBuffer[], uint8_t qrcode[]);
|
||||
|
||||
/*
|
||||
* Encodes the given segments to a QR Code, returning true if successful.
|
||||
* If the data is too long to fit in any version in the given range
|
||||
* at the given ECC level, then false is returned.
|
||||
*
|
||||
* Requires 1 <= minVersion <= maxVersion <= 40.
|
||||
*
|
||||
* The smallest possible QR Code version within the given range is automatically
|
||||
* chosen for the output. Iff boostEcl is true, then the ECC level of the result
|
||||
* may be higher than the ecl argument if it can be done without increasing the
|
||||
* version. The mask is either between qrcodegen_Mask_0 to 7 to force that mask, or
|
||||
* qrcodegen_Mask_AUTO to automatically choose an appropriate mask (which may be slow).
|
||||
*
|
||||
* About the byte arrays, letting len = qrcodegen_BUFFER_LEN_FOR_VERSION(qrcodegen_VERSION_MAX):
|
||||
* - Before calling the function:
|
||||
* - The array ranges tempBuffer[0 : len] and qrcode[0 : len] must allow
|
||||
* reading and writing; hence each array must have a length of at least len.
|
||||
* - The two ranges must not overlap (aliasing).
|
||||
* - The initial state of both ranges can be uninitialized
|
||||
* because the function always writes before reading.
|
||||
* - The input array segs can contain segments whose data buffers overlap with tempBuffer.
|
||||
* - After the function returns:
|
||||
* - Both ranges have no guarantee on which elements are initialized and what values are stored.
|
||||
* - tempBuffer contains no useful data and should be treated as entirely uninitialized.
|
||||
* - Any segment whose data buffer overlaps with tempBuffer[0 : len]
|
||||
* must be treated as having invalid values in that array.
|
||||
* - If successful, qrcode can be passed into qrcodegen_getSize() and qrcodegen_getModule().
|
||||
*
|
||||
* Please consult the QR Code specification for information on
|
||||
* data capacities per version, ECC level, and text encoding mode.
|
||||
*
|
||||
* This function allows the user to create a custom sequence of segments that switches
|
||||
* between modes (such as alphanumeric and byte) to encode text in less space.
|
||||
* This is a low-level API; the high-level API is qrcodegen_encodeText() and qrcodegen_encodeBinary().
|
||||
*/
|
||||
bool qrcodegen_encodeSegmentsAdvanced(const struct qrcodegen_Segment segs[], size_t len, enum qrcodegen_Ecc ecl,
|
||||
int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl,
|
||||
uint8_t tempBuffer[], uint8_t qrcode[]);
|
||||
|
||||
/*
|
||||
* Tests whether the given string can be encoded as a segment in numeric mode.
|
||||
* A string is encodable iff each character is in the range 0 to 9.
|
||||
*/
|
||||
bool qrcodegen_isNumeric(const char *text);
|
||||
|
||||
/*
|
||||
* Tests whether the given string can be encoded as a segment in alphanumeric mode.
|
||||
* A string is encodable iff each character is in the following set: 0 to 9, A to Z
|
||||
* (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon.
|
||||
*/
|
||||
bool qrcodegen_isAlphanumeric(const char *text);
|
||||
|
||||
/*
|
||||
* Returns the number of bytes (uint8_t) needed for the data buffer of a segment
|
||||
* containing the given number of characters using the given mode. Notes:
|
||||
* - Returns SIZE_MAX on failure, i.e. numChars > INT16_MAX or the internal
|
||||
* calculation of the number of needed bits exceeds INT16_MAX (i.e. 32767).
|
||||
* - Otherwise, all valid results are in the range [0, ceil(INT16_MAX / 8)], i.e. at most 4096.
|
||||
* - It is okay for the user to allocate more bytes for the buffer than needed.
|
||||
* - For byte mode, numChars measures the number of bytes, not Unicode code points.
|
||||
* - For ECI mode, numChars must be 0, and the worst-case number of bytes is returned.
|
||||
* An actual ECI segment can have shorter data. For non-ECI modes, the result is exact.
|
||||
*/
|
||||
size_t qrcodegen_calcSegmentBufferSize(enum qrcodegen_Mode mode, size_t numChars);
|
||||
|
||||
/*
|
||||
* Returns a segment representing the given binary data encoded in
|
||||
* byte mode. All input byte arrays are acceptable. Any text string
|
||||
* can be converted to UTF-8 bytes and encoded as a byte mode segment.
|
||||
*/
|
||||
struct qrcodegen_Segment qrcodegen_makeBytes(const uint8_t data[], size_t len, uint8_t buf[]);
|
||||
|
||||
/*
|
||||
* Returns a segment representing the given string of decimal digits encoded in numeric mode.
|
||||
*/
|
||||
struct qrcodegen_Segment qrcodegen_makeNumeric(const char *digits, uint8_t buf[]);
|
||||
|
||||
/*
|
||||
* Returns a segment representing the given text string encoded in alphanumeric mode.
|
||||
* The characters allowed are: 0 to 9, A to Z (uppercase only), space,
|
||||
* dollar, percent, asterisk, plus, hyphen, period, slash, colon.
|
||||
*/
|
||||
struct qrcodegen_Segment qrcodegen_makeAlphanumeric(const char *text, uint8_t buf[]);
|
||||
|
||||
/*
|
||||
* Returns a segment representing an Extended Channel Interpretation
|
||||
* (ECI) designator with the given assignment value.
|
||||
*/
|
||||
struct qrcodegen_Segment qrcodegen_makeEci(long assignVal, uint8_t buf[]);
|
||||
|
||||
/*---- Functions to extract raw data from QR Codes ----*/
|
||||
|
||||
/*
|
||||
* Returns the side length of the given QR Code, assuming that encoding succeeded.
|
||||
* The result is in the range [21, 177]. Note that the length of the array buffer
|
||||
* is related to the side length - every 'uint8_t qrcode[]' must have length at least
|
||||
* qrcodegen_BUFFER_LEN_FOR_VERSION(version), which equals ceil(size^2 / 8 + 1).
|
||||
*/
|
||||
int qrcodegen_getSize(const uint8_t qrcode[]);
|
||||
|
||||
/*
|
||||
* Returns the color of the module (pixel) at the given coordinates, which is false
|
||||
* for light or true for dark. The top left corner has the coordinates (x=0, y=0).
|
||||
* If the given coordinates are out of bounds, then false (light) is returned.
|
||||
*/
|
||||
bool qrcodegen_getModule(const uint8_t qrcode[], int x, int y);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
7
common/include/cleonos_version.h
Normal file
7
common/include/cleonos_version.h
Normal file
@@ -0,0 +1,7 @@
|
||||
#ifndef CLEONOS_VERSION_H
|
||||
#define CLEONOS_VERSION_H
|
||||
|
||||
#define CLKS_VERSION_STRING "1.0.0-alpha"
|
||||
#define CLEONOS_VERSION_STRING "1.0.0-alpha"
|
||||
|
||||
#endif
|
||||
@@ -4,193 +4,373 @@
|
||||
"key": "CLEONOS_CLKS_ENABLE_AUDIO",
|
||||
"title": "Audio Driver Init",
|
||||
"description": "Initialize kernel audio subsystem during boot.",
|
||||
"type": "bool",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_MOUSE",
|
||||
"title": "PS/2 Mouse Input",
|
||||
"description": "Initialize kernel PS/2 mouse input subsystem.",
|
||||
"type": "bool",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_DESKTOP",
|
||||
"title": "TTY2 Desktop",
|
||||
"description": "Enable desktop compositor tick/update path on TTY2.",
|
||||
"default": true
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_MOUSE"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_DRIVER_MANAGER",
|
||||
"title": "Driver Manager",
|
||||
"description": "Initialize kernel ELF driver manager.",
|
||||
"type": "bool",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_KELF",
|
||||
"title": "KELF Executor",
|
||||
"description": "Enable kernel ELF app dispatcher and kelfd task.",
|
||||
"default": true
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_DRIVER_MANAGER && CLEONOS_CLKS_ENABLE_ELFRUNNER_INIT",
|
||||
"imply": [
|
||||
"CLEONOS_CLKS_ENABLE_ELFRUNNER_PROBE",
|
||||
"CLEONOS_CLKS_ENABLE_USER_SYSTEM_APP_PROBE"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USERLAND_AUTO_EXEC",
|
||||
"title": "Auto Enter User Shell",
|
||||
"description": "Auto-exec /shell/shell.elf after kernel boot.",
|
||||
"default": true
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_USRD_TASK && CLEONOS_CLKS_ENABLE_KEYBOARD",
|
||||
"select": [
|
||||
"CLEONOS_CLKS_ENABLE_USRD_TASK",
|
||||
"CLEONOS_CLKS_ENABLE_KEYBOARD"
|
||||
],
|
||||
"imply": [
|
||||
"CLEONOS_CLKS_ENABLE_USER_INIT_SCRIPT_PROBE",
|
||||
"CLEONOS_CLKS_ENABLE_SHELL_MODE_LOG"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_HEAP_SELFTEST",
|
||||
"title": "Heap Selftest",
|
||||
"description": "Run kmalloc/kfree selftest during kernel boot.",
|
||||
"type": "bool",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_EXTERNAL_PSF",
|
||||
"title": "Load External PSF Font",
|
||||
"description": "Load /system/tty.psf and apply it to framebuffer TTY.",
|
||||
"type": "bool",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_KEYBOARD",
|
||||
"title": "PS/2 Keyboard Input",
|
||||
"description": "Initialize PS/2 keyboard input subsystem.",
|
||||
"default": true
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"imply": [
|
||||
"CLEONOS_CLKS_ENABLE_KBD_TTY_SWITCH_HOTKEY",
|
||||
"CLEONOS_CLKS_ENABLE_KBD_CTRL_SHORTCUTS"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_ELFRUNNER_PROBE",
|
||||
"title": "ELFRUNNER Probe",
|
||||
"description": "Probe kernel ELF runtime metadata after ELFRUNNER init.",
|
||||
"default": true
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_ELFRUNNER_INIT && CLEONOS_CLKS_ENABLE_KELF"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_KLOGD_TASK",
|
||||
"title": "Scheduler Task: klogd",
|
||||
"description": "Enable periodic klogd maintenance task.",
|
||||
"type": "bool",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_KWORKER_TASK",
|
||||
"title": "Scheduler Task: kworker",
|
||||
"description": "Enable periodic kernel worker service-heartbeat task.",
|
||||
"type": "bool",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USRD_TASK",
|
||||
"title": "Scheduler Task: usrd",
|
||||
"description": "Enable user/runtime dispatch task (shell tick, tty tick, exec tick).",
|
||||
"type": "bool",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_BOOT_VIDEO_LOG",
|
||||
"title": "Boot Video Geometry Logs",
|
||||
"description": "Print framebuffer width/height/pitch/bpp logs at boot.",
|
||||
"default": true
|
||||
"type": "tristate",
|
||||
"default": "y"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_PMM_STATS_LOG",
|
||||
"title": "PMM Stats Logs",
|
||||
"description": "Print PMM managed/free/used/dropped pages at boot.",
|
||||
"default": true
|
||||
"type": "tristate",
|
||||
"default": "y"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_HEAP_STATS_LOG",
|
||||
"title": "Heap Stats Logs",
|
||||
"description": "Print heap total/free bytes at boot.",
|
||||
"default": true
|
||||
"type": "tristate",
|
||||
"default": "y"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_FS_ROOT_LOG",
|
||||
"title": "FS Root Children Log",
|
||||
"description": "Print root directory children count during FS init.",
|
||||
"default": true
|
||||
"type": "tristate",
|
||||
"default": "y",
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_SYSTEM_DIR_CHECK"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_SYSTEM_DIR_CHECK",
|
||||
"title": "FS /SYSTEM Sanity Check",
|
||||
"description": "Require /system directory check during boot.",
|
||||
"type": "bool",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_ELFRUNNER_INIT",
|
||||
"title": "ELFRUNNER Init",
|
||||
"description": "Initialize ELFRUNNER framework in kernel boot path.",
|
||||
"type": "bool",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_SYSCALL_TICK_QUERY",
|
||||
"title": "SYSCALL Tick Query",
|
||||
"description": "Query timer ticks via syscall and log result during boot.",
|
||||
"default": true
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_PROCFS"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_TTY_READY_LOG",
|
||||
"title": "TTY Ready Logs",
|
||||
"description": "Print TTY count/active/cursor ready logs.",
|
||||
"default": true
|
||||
"type": "tristate",
|
||||
"default": "y"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_IDLE_DEBUG_LOG",
|
||||
"title": "Idle Loop Debug Log",
|
||||
"description": "Print debug log before entering kernel idle loop.",
|
||||
"default": true
|
||||
"type": "tristate",
|
||||
"default": "y"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_PROCFS",
|
||||
"title": "Virtual /proc",
|
||||
"description": "Enable virtual procfs paths (/proc, /proc/list, /proc/self, /proc/<pid>) in syscall FS layer.",
|
||||
"type": "bool",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_EXEC_SERIAL_LOG",
|
||||
"title": "EXEC Serial Logs",
|
||||
"description": "Print EXEC run/return/path logs to serial output.",
|
||||
"default": true
|
||||
"type": "tristate",
|
||||
"default": "y"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USC",
|
||||
"title": "UserSafeController (USC)",
|
||||
"description": "Prompt before dangerous user syscalls and remember per-app approval for current boot.",
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_KEYBOARD",
|
||||
"group": "USC Syscall Policy"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USC_SC_FS_MKDIR",
|
||||
"title": "Intercept FS_MKDIR",
|
||||
"description": "USC prompt for syscall FS_MKDIR.",
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_USC",
|
||||
"group": "USC Syscall Policy"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USC_SC_FS_WRITE",
|
||||
"title": "Intercept FS_WRITE",
|
||||
"description": "USC prompt for syscall FS_WRITE.",
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_USC",
|
||||
"group": "USC Syscall Policy"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USC_SC_FS_APPEND",
|
||||
"title": "Intercept FS_APPEND",
|
||||
"description": "USC prompt for syscall FS_APPEND.",
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_USC",
|
||||
"group": "USC Syscall Policy"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USC_SC_FS_REMOVE",
|
||||
"title": "Intercept FS_REMOVE",
|
||||
"description": "USC prompt for syscall FS_REMOVE.",
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_USC",
|
||||
"group": "USC Syscall Policy"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATH",
|
||||
"title": "Intercept EXEC_PATH",
|
||||
"description": "USC prompt for syscall EXEC_PATH.",
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_USC",
|
||||
"group": "USC Syscall Policy"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATHV",
|
||||
"title": "Intercept EXEC_PATHV",
|
||||
"description": "USC prompt for syscall EXEC_PATHV.",
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_USC",
|
||||
"group": "USC Syscall Policy"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATHV_IO",
|
||||
"title": "Intercept EXEC_PATHV_IO",
|
||||
"description": "USC prompt for syscall EXEC_PATHV_IO.",
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_USC",
|
||||
"group": "USC Syscall Policy"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USC_SC_SPAWN_PATH",
|
||||
"title": "Intercept SPAWN_PATH",
|
||||
"description": "USC prompt for syscall SPAWN_PATH.",
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_USC",
|
||||
"group": "USC Syscall Policy"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USC_SC_SPAWN_PATHV",
|
||||
"title": "Intercept SPAWN_PATHV",
|
||||
"description": "USC prompt for syscall SPAWN_PATHV.",
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_USC",
|
||||
"group": "USC Syscall Policy"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USC_SC_PROC_KILL",
|
||||
"title": "Intercept PROC_KILL",
|
||||
"description": "USC prompt for syscall PROC_KILL.",
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_USC",
|
||||
"group": "USC Syscall Policy"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USC_SC_SHUTDOWN",
|
||||
"title": "Intercept SHUTDOWN",
|
||||
"description": "USC prompt for syscall SHUTDOWN.",
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_USC",
|
||||
"group": "USC Syscall Policy"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USC_SC_RESTART",
|
||||
"title": "Intercept RESTART",
|
||||
"description": "USC prompt for syscall RESTART.",
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_USC",
|
||||
"group": "USC Syscall Policy"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_KBD_TTY_SWITCH_HOTKEY",
|
||||
"title": "Keyboard TTY Switch Hotkey",
|
||||
"description": "Enable ALT+F1..F4 keyboard hotkey for active TTY switching.",
|
||||
"default": true
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_KEYBOARD"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_KBD_CTRL_SHORTCUTS",
|
||||
"title": "Keyboard Ctrl Shortcuts",
|
||||
"description": "Enable Ctrl+A/C/V shortcuts for input selection/copy/paste.",
|
||||
"default": true
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_KEYBOARD",
|
||||
"imply": [
|
||||
"CLEONOS_CLKS_ENABLE_KBD_TTY_SWITCH_HOTKEY"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_KBD_FORCE_STOP_HOTKEY",
|
||||
"title": "Keyboard Force-Stop Hotkey",
|
||||
"description": "Enable Ctrl+Alt+C force-stop for current running user process.",
|
||||
"default": true
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_KEYBOARD && CLEONOS_CLKS_ENABLE_PROCFS"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USER_INIT_SCRIPT_PROBE",
|
||||
"title": "User Init Script Probe",
|
||||
"description": "Probe and log /shell/init.cmd presence during userland init.",
|
||||
"default": true
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_USERLAND_AUTO_EXEC"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_USER_SYSTEM_APP_PROBE",
|
||||
"title": "User System App Probe",
|
||||
"description": "Probe /system/elfrunner.elf and /system/memc.elf during userland init.",
|
||||
"default": true
|
||||
"type": "bool",
|
||||
"default": true,
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_KELF"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_SCHED_TASK_COUNT_LOG",
|
||||
"title": "Scheduler Task Count Log",
|
||||
"description": "Print scheduler task count after scheduler initialization.",
|
||||
"default": true
|
||||
"type": "tristate",
|
||||
"default": "y",
|
||||
"depends_on": "CLEONOS_CLKS_ENABLE_KLOGD_TASK || CLEONOS_CLKS_ENABLE_KWORKER_TASK || CLEONOS_CLKS_ENABLE_USRD_TASK"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_INTERRUPT_READY_LOG",
|
||||
"title": "Interrupt Ready Log",
|
||||
"description": "Print IDT/PIC initialized log after interrupt setup.",
|
||||
"default": true
|
||||
"type": "tristate",
|
||||
"default": "y"
|
||||
},
|
||||
{
|
||||
"key": "CLEONOS_CLKS_ENABLE_SHELL_MODE_LOG",
|
||||
"title": "Shell Mode Log",
|
||||
"description": "Print whether boot default mode is user shell or kernel shell.",
|
||||
"default": true
|
||||
"type": "tristate",
|
||||
"default": "y"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ u64 cleonos_syscall(u64 id, u64 arg0, u64 arg1, u64 arg2);
|
||||
|
||||
内核分发位置:
|
||||
|
||||
- `clks/kernel/syscall.c`
|
||||
- `clks/kernel/runtime/syscall.c`
|
||||
|
||||
## 2. 全局返回规则
|
||||
|
||||
@@ -61,10 +61,10 @@ u64 cleonos_syscall(u64 id, u64 arg0, u64 arg1, u64 arg2);
|
||||
|
||||
## 3. 当前实现中的长度/路径限制
|
||||
|
||||
以下限制由内核 `clks/kernel/syscall.c` 当前实现决定:
|
||||
以下限制由内核 `clks/kernel/runtime/syscall.c` 当前实现决定:
|
||||
|
||||
- 日志写入 `LOG_WRITE`:最大拷贝 `191` 字节。
|
||||
- TTY 文本写入 `TTY_WRITE`:最大拷贝 `512` 字节。
|
||||
- TTY 文本写入 `TTY_WRITE`:最大拷贝 `2048` 字节。
|
||||
- 文件读取 `FS_READ`:最多读取 `min(file_size, buffer_size)` 字节。
|
||||
- 文件写入 `FS_WRITE` / `FS_APPEND`:内核按 `65536` 字节分块搬运;这是实现分块大小,不是文件大小上限。
|
||||
- log journal 行读取缓冲:`256` 字节。
|
||||
@@ -83,7 +83,7 @@ u64 cleonos_syscall(u64 id, u64 arg0, u64 arg1, u64 arg2);
|
||||
- `/proc/<pid>`:指定 PID 快照文本
|
||||
- `/proc` 为只读;写入类 syscall 不支持。
|
||||
|
||||
## 4. Syscall 列表(0~76)
|
||||
## 4. Syscall 列表(0~84)
|
||||
|
||||
### 0 `CLEONOS_SYSCALL_LOG_WRITE`
|
||||
|
||||
@@ -604,6 +604,69 @@ u64 cleonos_syscall(u64 id, u64 arg0, u64 arg1, u64 arg2);
|
||||
- 返回:新 fd;失败 `-1`
|
||||
- 说明:当前为“按值复制”语义(复制 flags/offset/目标对象)。
|
||||
|
||||
### 77 `CLEONOS_SYSCALL_DL_OPEN`
|
||||
|
||||
- 参数:
|
||||
- `arg0`: `const char *path`
|
||||
- 返回:动态库句柄(`handle`);失败 `-1`
|
||||
- 说明:将用户态动态库(ELF)加载到当前进程地址空间,供 `DL_SYM` 查询符号。
|
||||
|
||||
### 78 `CLEONOS_SYSCALL_DL_CLOSE`
|
||||
|
||||
- 参数:
|
||||
- `arg0`: `u64 handle`
|
||||
- 返回:成功 `0`,失败 `-1`
|
||||
- 说明:关闭/释放由 `DL_OPEN` 返回的动态库句柄。
|
||||
|
||||
### 79 `CLEONOS_SYSCALL_DL_SYM`
|
||||
|
||||
- 参数:
|
||||
- `arg0`: `u64 handle`
|
||||
- `arg1`: `const char *symbol`
|
||||
- 返回:符号地址(`u64`);失败返回 `0`
|
||||
- 说明:用于查询库导出符号入口地址。
|
||||
|
||||
### 80 `CLEONOS_SYSCALL_EXEC_PATHV_IO`
|
||||
|
||||
- 参数:
|
||||
- `arg0`: `const char *path`
|
||||
- `arg1`: `const char *argv_line`(可为 `0`)
|
||||
- `arg2`: `struct { u64 env_line_ptr; u64 stdin_fd; u64 stdout_fd; u64 stderr_fd; } *req`
|
||||
- 返回:与 `EXEC_PATHV` 一致(成功返回子进程退出状态,失败 `-1`)
|
||||
- 说明:在 `EXEC_PATHV` 基础上增加 I/O 句柄重定向(用于管道与重定向)。
|
||||
|
||||
### 81 `CLEONOS_SYSCALL_FB_INFO`
|
||||
|
||||
- 参数:
|
||||
- `arg0`: `cleonos_fb_info *out_info`
|
||||
- 返回:成功 `1`,失败 `0`
|
||||
- 说明:获取 framebuffer 信息(`width/height/pitch/bpp`)。`out_info` 为空或 framebuffer 未就绪时失败。
|
||||
|
||||
### 82 `CLEONOS_SYSCALL_FB_BLIT`
|
||||
|
||||
- 参数:
|
||||
- `arg0`: `const cleonos_fb_blit_req *req`
|
||||
- 返回:成功 `1`,失败 `0`
|
||||
- 说明:
|
||||
- 从用户态 `pixels_ptr` 指向的 32bpp 源缓冲拷贝到 framebuffer。
|
||||
- `src_pitch_bytes=0` 时按 `src_width*4` 推导。
|
||||
- 当前实现限制:`src_width<=4096`、`src_height<=4096`、`scale<=8`,且目标坐标需落在屏幕内。
|
||||
|
||||
### 83 `CLEONOS_SYSCALL_FB_CLEAR`
|
||||
|
||||
- 参数:
|
||||
- `arg0`: `u64 rgb`(低 32 位有效)
|
||||
- 返回:成功 `1`,失败 `0`
|
||||
- 说明:用纯色清屏。
|
||||
|
||||
### 84 `CLEONOS_SYSCALL_KERNEL_VERSION`
|
||||
|
||||
- 参数:
|
||||
- `arg0`: `char *out_version`
|
||||
- `arg1`: `u64 out_size`
|
||||
- 返回:实际写入字节数(不含终止符),失败返回 `0`
|
||||
- 说明:返回 CLKS 内核版本字符串(当前默认 `1.0.0-alpha`),内核会保证输出以 `\0` 结尾。
|
||||
|
||||
## 5. 用户态封装函数
|
||||
|
||||
用户态封装位于:
|
||||
@@ -629,6 +692,10 @@ u64 cleonos_syscall(u64 id, u64 arg0, u64 arg1, u64 arg2);
|
||||
- `cleonos_sys_kdbg_sym()` / `cleonos_sys_kdbg_bt()` / `cleonos_sys_kdbg_regs()`
|
||||
- `cleonos_sys_stats_total()` / `cleonos_sys_stats_id_count()` / `cleonos_sys_stats_recent_window()` / `cleonos_sys_stats_recent_id()`
|
||||
- `cleonos_sys_fd_open()` / `cleonos_sys_fd_read()` / `cleonos_sys_fd_write()` / `cleonos_sys_fd_close()` / `cleonos_sys_fd_dup()`
|
||||
- `cleonos_sys_dl_open()` / `cleonos_sys_dl_close()` / `cleonos_sys_dl_sym()`
|
||||
- `cleonos_sys_exec_pathv_io()`
|
||||
- `cleonos_sys_fb_info()` / `cleonos_sys_fb_blit()` / `cleonos_sys_fb_clear()`
|
||||
- `cleonos_sys_kernel_version()`
|
||||
|
||||
## 6. 开发注意事项
|
||||
|
||||
@@ -639,6 +706,18 @@ u64 cleonos_syscall(u64 id, u64 arg0, u64 arg1, u64 arg2);
|
||||
|
||||
## 7. Wine 兼容说明
|
||||
|
||||
- `wine/cleonos_wine_lib/runner.py` 目前以 syscall `0..67` 为主;`68..76`(stats/fd)需同步适配后才能完整覆盖。
|
||||
- `wine/cleonos_wine_lib/runner.py` 当前已覆盖到 `0..84`(含 `DL_*`、`FB_*`、`KERNEL_VERSION`)。
|
||||
- `DL_*`(`77..79`)在 Wine 中为“可运行兼容”实现:
|
||||
- `DL_OPEN`:加载 guest ELF 到当前 Unicorn 地址空间,返回稳定 `handle`,并做引用计数。
|
||||
- `DL_SYM`:解析 ELF `SYMTAB/DYNSYM` 并返回 guest 可调用地址。
|
||||
- `DL_CLOSE`:引用计数归零后释放句柄。
|
||||
- `DL_*` 兼容限制:未实现完整动态链接器语义(例如完整重定位/依赖库链),但对 CLeonOS 现有用户态库调用场景可工作。
|
||||
- framebuffer syscall(`81..83`)在 Wine 中已实现兼容:
|
||||
- `FB_INFO` 返回 framebuffer 参数(默认 `1280x800x32`,可用环境变量 `CLEONOS_WINE_FB_WIDTH/HEIGHT` 调整)。
|
||||
- `FB_BLIT` 实现内核同类参数校验并支持 `scale>=1` 绘制。
|
||||
- 配合 Wine 参数 `--fb-window` 可将 framebuffer 实时显示到主机窗口(pygame 后端);未启用时保持内存缓冲模式。
|
||||
- `FB_CLEAR` 支持清屏颜色写入。
|
||||
- `KERNEL_VERSION`(`84`)在 Wine 中返回内核版本字符串(当前默认 `1.0.0-alpha`)。
|
||||
- Wine 在运行时崩溃场景下会生成与内核一致格式的“信号编码退出状态”,可通过 `WAITPID` 读取。
|
||||
- Wine 当前音频 syscall 为占位实现:`AUDIO_AVAILABLE=0`,`AUDIO_PLAY_TONE=0`,`AUDIO_STOP=1`。
|
||||
- Wine 版本号策略固定为 `85.0.0-wine`(`85` = 当前实现 syscall 数量,后续保持不变)。
|
||||
|
||||
BIN
ramdisk/1/1.bmp
Normal file
BIN
ramdisk/1/1.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 144 KiB |
BIN
ramdisk/doom1.wad
Normal file
BIN
ramdisk/doom1.wad
Normal file
Binary file not shown.
Binary file not shown.
BIN
scripts/__pycache__/menuconfig.cpython-313.pyc
Normal file
BIN
scripts/__pycache__/menuconfig.cpython-313.pyc
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -13,7 +13,7 @@ CLeonOS-Wine 现在改为自研运行器:基于 Python + Unicorn,直接运
|
||||
- `wine/cleonos_wine_lib/input_pump.py`:主机键盘输入线程
|
||||
- `wine/cleonos_wine_lib/constants.py`:常量与 syscall ID
|
||||
- `wine/cleonos_wine_lib/platform.py`:Unicorn 导入与平台适配
|
||||
- `wine/requirements.txt`:Python 依赖(Unicorn)
|
||||
- `wine/requirements.txt`:Python 依赖(Unicorn + pygame)
|
||||
|
||||
## 安装
|
||||
|
||||
@@ -26,6 +26,7 @@ pip install -r wine/requirements.txt
|
||||
```bash
|
||||
python wine/cleonos_wine.py /hello.elf --rootfs build/x86_64/ramdisk_root
|
||||
python wine/cleonos_wine.py /shell/shell.elf --rootfs build/x86_64/ramdisk_root
|
||||
python wine/cleonos_wine.py /shell/qrcode.elf --rootfs build/x86_64/ramdisk_root --fb-window -- --ecc H "hello wine"
|
||||
```
|
||||
|
||||
也支持直接传宿主路径:
|
||||
@@ -37,18 +38,37 @@ python wine/cleonos_wine.py build/x86_64/ramdisk_root/shell/shell.elf --rootfs b
|
||||
## 支持
|
||||
|
||||
- ELF64 (x86_64) PT_LOAD 段装载
|
||||
- CLeonOS `int 0x80` syscall 0..60
|
||||
- CLeonOS `int 0x80` syscall 0..84(含 `FD_*`、`DL_*`、`FB_*`、`PROC_*`、`STATS_*`、`EXEC_PATHV_IO`、`KERNEL_VERSION`)
|
||||
- TTY 输出与键盘输入队列
|
||||
- rootfs 文件/目录访问(`FS_*`)
|
||||
- `/temp` 写入限制(`FS_MKDIR/WRITE/APPEND/REMOVE`)
|
||||
- `EXEC_PATH/EXEC_PATHV` 执行 ELF(带深度限制)
|
||||
- `EXEC_PATHV_IO`(支持 stdio fd 继承/重定向)
|
||||
- `SPAWN_PATH/SPAWN_PATHV/WAITPID/EXIT/SLEEP_TICKS/YIELD`
|
||||
- 进程 `argv/env` 查询(`PROC_ARGC/PROC_ARGV/PROC_ENVC/PROC_ENV`)
|
||||
- 进程枚举与快照(`PROC_COUNT/PROC_PID_AT/PROC_SNAPSHOT/PROC_KILL`)
|
||||
- syscall 统计(`STATS_TOTAL/STATS_ID_COUNT/STATS_RECENT_*`)
|
||||
- 文件描述符(`FD_OPEN/FD_READ/FD_WRITE/FD_CLOSE/FD_DUP`)
|
||||
- 动态库兼容加载(`DL_OPEN/DL_CLOSE/DL_SYM`,基于 ELF 符号解析)
|
||||
- framebuffer 兼容(`FB_INFO/FB_BLIT/FB_CLEAR`,支持内存缓冲与窗口显示)
|
||||
- 内核版本查询(`KERNEL_VERSION`)
|
||||
- 异常退出状态编码与故障元信息(`PROC_LAST_SIGNAL/PROC_FAULT_*`)
|
||||
|
||||
## 版本策略
|
||||
|
||||
- CLeonOS-Wine 版本号固定为:`85.0.0-wine`
|
||||
- 该值来源于“当前实现 syscall 数量 = 85(0..84)”,按项目约定后续不再变更
|
||||
|
||||
## 参数
|
||||
|
||||
- `--no-kbd`:关闭输入线程
|
||||
- `--fb-window`:启用 framebuffer 窗口显示(pygame)
|
||||
- `--fb-scale N`:窗口缩放倍数(默认 `2`)
|
||||
- `--fb-max-fps N`:窗口刷新上限(默认 `60`)
|
||||
- `--fb-hold-ms N`:程序退出后窗口保留毫秒数(默认 `2500`,静态图更容易看清)
|
||||
- `--argv-line "..."`:直接指定 guest 参数行(等价于 shell 参数字符串)
|
||||
- `--cwd PATH`:写入命令上下文中的工作目录(默认 `/`)
|
||||
- `--` 之后内容:作为 guest argv 透传(推荐)
|
||||
- `--max-exec-depth N`:设置 exec 嵌套深度上限
|
||||
- `--verbose`:打印更多日志
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user