From 20e7289c610ff8f76a8068c8ad7e6d9cf1c59740 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Thu, 30 Jul 2026 16:34:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=20.py=20=E5=92=8C=20.pyi=20=E5=90=8E?= =?UTF-8?q?=E7=BC=80=E5=90=8D=E6=94=B9=E4=B8=BA=E4=BA=86=20.vp=20=E5=92=8C?= =?UTF-8?q?=20.vpi=20=E5=90=8E=E7=BC=80=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Apps/Gargantua/{main.py => main.vp} | 0 Apps/Gargantua/project.json | 61 ++- Apps/HelloWorld/{main.py => main.vp} | 0 Apps/HelloWorld/project.json | 61 ++- Apps/Scene3D/{gfx.py => gfx.vp} | 0 Apps/Scene3D/{main.py => main.vp} | 0 Apps/Scene3D/project.json | 61 ++- Apps/Terminal/{main.py => main.vp} | 0 Apps/Terminal/project.json | 61 ++- Libs/SerialLogger/project.json | 67 ++- .../{serial_logger.py => serial_logger.vp} | 0 Libs/VPUI64/project.json | 67 ++- Libs/VPUI64/{vpui64.py => vpui64.vp} | 0 VKernel/Kernel/{bootinfo.py => bootinfo.vp} | 0 .../drivers/core/cpu/{apic.py => apic.vp} | 0 .../drivers/core/cpu/{cpu.py => cpu.vp} | 0 .../drivers/core/cpu/{fpu.py => fpu.vp} | 0 VKernel/Kernel/drivers/devfs/devfs copy.vp | 385 ++++++++++++++++++ .../drivers/devfs/{devfs.py => devfs.vp} | 0 .../fs/fat32/{example_fs.py => example_fs.vp} | 0 .../drivers/fs/fat32/{fat32.py => fat32.vp} | 0 .../fs/fat32/{fat32_core.py => fat32_core.vp} | 0 .../fs/fat32/{fat32_dir.py => fat32_dir.vp} | 0 .../{fat32_diskio.py => fat32_diskio.vp} | 0 .../fs/fat32/{fat32_file.py => fat32_file.vp} | 0 .../fs/fat32/{fat32_mkfs.py => fat32_mkfs.vp} | 0 .../fs/fat32/{fat32_part.py => fat32_part.vp} | 0 .../fs/fat32/{fat32_time.py => fat32_time.vp} | 0 .../fat32/{fat32_types.py => fat32_types.vp} | 0 .../drivers/fs/fat32/{fileio.py => fileio.vp} | 0 .../keyboard/{keyboard.py => keyboard.vp} | 0 .../input/mouse/{mouse.py => mouse.vp} | 0 .../serial/uart/{serial.py => serial.vp} | 0 .../serial/uart/{su8250.py => su8250.vp} | 0 .../drivers/storage/ide/{ide.py => ide.vp} | 0 .../Kernel/drivers/usb/hid/{hid.py => hid.vp} | 0 .../usb/hid/{usb_kbd.py => usb_kbd.vp} | 0 .../usb/hid/{usb_mouse.py => usb_mouse.vp} | 0 VKernel/Kernel/drivers/usb/{pci.py => pci.vp} | 0 .../Kernel/drivers/usb/{uhci.py => uhci.vp} | 0 VKernel/Kernel/drivers/usb/{usb.py => usb.vp} | 0 .../drivers/video/ui/{sheet.py => sheet.vp} | 0 .../Kernel/drivers/video/ui/{ui.py => ui.vp} | 0 .../drivers/video/vesafb/{gfx.py => gfx.vp} | 0 .../drivers/video/vesafb/{vga.py => vga.vp} | 0 VKernel/Kernel/execrunner/{elf.py => elf.vp} | 0 .../Kernel/intr/{__init__.py => __init__.vp} | 0 VKernel/Kernel/intr/{gdt.py => gdt.vp} | 0 VKernel/Kernel/intr/{idt.py => idt.vp} | 102 ++--- .../Kernel/intr/{syscall.py => syscall.vp} | 0 VKernel/Kernel/{main.py => main.vp} | 0 VKernel/Kernel/mm/{mm.py => mm.vp} | 0 .../Kernel/paging/{paging.py => paging.vp} | 0 .../platform/pch/{__init__.py => __init__.vp} | 0 .../Kernel/platform/pch/{pic.py => pic.vp} | 0 .../Kernel/platform/pch/{pit.py => pit.vp} | 0 .../Kernel/platform/pch/{rtc.py => rtc.vp} | 0 .../platform/pch/{timer.py => timer.vp} | 0 .../sched/{coroutine.py => coroutine.vp} | 0 .../Kernel/sched/{process.py => process.vp} | 0 VKernel/Kernel/sched/{sched.py => sched.vp} | 0 .../services/{desktop.py => desktop.vp} | 0 .../services/{keyboard.py => keyboard.vp} | 0 .../Kernel/services/{mouse.py => mouse.vp} | 0 VKernel/project.json | 61 ++- vpsdk/{__init__.py => __init__.vp} | 0 vpsdk/{dynlib.py => dynlib.vp} | 0 vpsdk/{fs.py => fs.vp} | 0 vpsdk/{process.py => process.vp} | 0 vpsdk/{stdlib.py => stdlib.vp} | 0 vpsdk/{syscall.py => syscall.vp} | 0 vpsdk/{vpui.py => vpui.vp} | 0 vpsdk/{window.py => window.vp} | 0 73 files changed, 652 insertions(+), 274 deletions(-) rename Apps/Gargantua/{main.py => main.vp} (100%) rename Apps/HelloWorld/{main.py => main.vp} (100%) rename Apps/Scene3D/{gfx.py => gfx.vp} (100%) rename Apps/Scene3D/{main.py => main.vp} (100%) rename Apps/Terminal/{main.py => main.vp} (100%) rename Libs/SerialLogger/{serial_logger.py => serial_logger.vp} (100%) rename Libs/VPUI64/{vpui64.py => vpui64.vp} (100%) rename VKernel/Kernel/{bootinfo.py => bootinfo.vp} (100%) rename VKernel/Kernel/drivers/core/cpu/{apic.py => apic.vp} (100%) rename VKernel/Kernel/drivers/core/cpu/{cpu.py => cpu.vp} (100%) rename VKernel/Kernel/drivers/core/cpu/{fpu.py => fpu.vp} (100%) create mode 100644 VKernel/Kernel/drivers/devfs/devfs copy.vp rename VKernel/Kernel/drivers/devfs/{devfs.py => devfs.vp} (100%) rename VKernel/Kernel/drivers/fs/fat32/{example_fs.py => example_fs.vp} (100%) rename VKernel/Kernel/drivers/fs/fat32/{fat32.py => fat32.vp} (100%) rename VKernel/Kernel/drivers/fs/fat32/{fat32_core.py => fat32_core.vp} (100%) rename VKernel/Kernel/drivers/fs/fat32/{fat32_dir.py => fat32_dir.vp} (100%) rename VKernel/Kernel/drivers/fs/fat32/{fat32_diskio.py => fat32_diskio.vp} (100%) rename VKernel/Kernel/drivers/fs/fat32/{fat32_file.py => fat32_file.vp} (100%) rename VKernel/Kernel/drivers/fs/fat32/{fat32_mkfs.py => fat32_mkfs.vp} (100%) rename VKernel/Kernel/drivers/fs/fat32/{fat32_part.py => fat32_part.vp} (100%) rename VKernel/Kernel/drivers/fs/fat32/{fat32_time.py => fat32_time.vp} (100%) rename VKernel/Kernel/drivers/fs/fat32/{fat32_types.py => fat32_types.vp} (100%) rename VKernel/Kernel/drivers/fs/fat32/{fileio.py => fileio.vp} (100%) rename VKernel/Kernel/drivers/input/keyboard/{keyboard.py => keyboard.vp} (100%) rename VKernel/Kernel/drivers/input/mouse/{mouse.py => mouse.vp} (100%) rename VKernel/Kernel/drivers/serial/uart/{serial.py => serial.vp} (100%) rename VKernel/Kernel/drivers/serial/uart/{su8250.py => su8250.vp} (100%) rename VKernel/Kernel/drivers/storage/ide/{ide.py => ide.vp} (100%) rename VKernel/Kernel/drivers/usb/hid/{hid.py => hid.vp} (100%) rename VKernel/Kernel/drivers/usb/hid/{usb_kbd.py => usb_kbd.vp} (100%) rename VKernel/Kernel/drivers/usb/hid/{usb_mouse.py => usb_mouse.vp} (100%) rename VKernel/Kernel/drivers/usb/{pci.py => pci.vp} (100%) rename VKernel/Kernel/drivers/usb/{uhci.py => uhci.vp} (100%) rename VKernel/Kernel/drivers/usb/{usb.py => usb.vp} (100%) rename VKernel/Kernel/drivers/video/ui/{sheet.py => sheet.vp} (100%) rename VKernel/Kernel/drivers/video/ui/{ui.py => ui.vp} (100%) rename VKernel/Kernel/drivers/video/vesafb/{gfx.py => gfx.vp} (100%) rename VKernel/Kernel/drivers/video/vesafb/{vga.py => vga.vp} (100%) rename VKernel/Kernel/execrunner/{elf.py => elf.vp} (100%) rename VKernel/Kernel/intr/{__init__.py => __init__.vp} (100%) rename VKernel/Kernel/intr/{gdt.py => gdt.vp} (100%) rename VKernel/Kernel/intr/{idt.py => idt.vp} (83%) rename VKernel/Kernel/intr/{syscall.py => syscall.vp} (100%) rename VKernel/Kernel/{main.py => main.vp} (100%) rename VKernel/Kernel/mm/{mm.py => mm.vp} (100%) rename VKernel/Kernel/paging/{paging.py => paging.vp} (100%) rename VKernel/Kernel/platform/pch/{__init__.py => __init__.vp} (100%) rename VKernel/Kernel/platform/pch/{pic.py => pic.vp} (100%) rename VKernel/Kernel/platform/pch/{pit.py => pit.vp} (100%) rename VKernel/Kernel/platform/pch/{rtc.py => rtc.vp} (100%) rename VKernel/Kernel/platform/pch/{timer.py => timer.vp} (100%) rename VKernel/Kernel/sched/{coroutine.py => coroutine.vp} (100%) rename VKernel/Kernel/sched/{process.py => process.vp} (100%) rename VKernel/Kernel/sched/{sched.py => sched.vp} (100%) rename VKernel/Kernel/services/{desktop.py => desktop.vp} (100%) rename VKernel/Kernel/services/{keyboard.py => keyboard.vp} (100%) rename VKernel/Kernel/services/{mouse.py => mouse.vp} (100%) rename vpsdk/{__init__.py => __init__.vp} (100%) rename vpsdk/{dynlib.py => dynlib.vp} (100%) rename vpsdk/{fs.py => fs.vp} (100%) rename vpsdk/{process.py => process.vp} (100%) rename vpsdk/{stdlib.py => stdlib.vp} (100%) rename vpsdk/{syscall.py => syscall.vp} (100%) rename vpsdk/{vpui.py => vpui.vp} (100%) rename vpsdk/{window.py => window.vp} (100%) diff --git a/Apps/Gargantua/main.py b/Apps/Gargantua/main.vp similarity index 100% rename from Apps/Gargantua/main.py rename to Apps/Gargantua/main.vp diff --git a/Apps/Gargantua/project.json b/Apps/Gargantua/project.json index 9ef9c98..bc84147 100644 --- a/Apps/Gargantua/project.json +++ b/Apps/Gargantua/project.json @@ -1,31 +1,30 @@ -{ - "name": "Gargantua", - "version": "1.0.0", - "source_dir": "./", - "temp_dir": "./temp", - "output_dir": "./output", - "compiler": { - "cmd": "llc", - "flags": ["-filetype=obj", "-mtriple=x86_64-none-elf", "-relocation-model=static", "-O2"] - }, - "linker": { - "cmd": "ld.lld.exe", - "flags": [ - "-m", "elf_x86_64", - "-T", "linker.ld", - "--oformat", "elf64-x86-64", - "--strip-all" - ], - "output": "gargantua.elf" - }, - "includes": ["../.."], - "target": { - "triple": "x86_64-none-elf", - "datalayout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" - }, - "options": { - "slice_level": 3, - "target": "llvm", - "strict_mode": true - } -} +{ + "name": "Gargantua", + "version": "1.0.0", + "source_dir": "./", + "build_dir": "./.tpv_build", + "compiler": { + "cmd": "llc", + "flags": ["-filetype=obj", "-mtriple=x86_64-none-elf", "-relocation-model=static", "-O2"] + }, + "linker": { + "cmd": "ld.lld.exe", + "flags": [ + "-m", "elf_x86_64", + "-T", "linker.ld", + "--oformat", "elf64-x86-64", + "--strip-all" + ], + "output": "gargantua.elf" + }, + "includes": ["../.."], + "target": { + "triple": "x86_64-none-elf", + "datalayout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" + }, + "options": { + "slice_level": 3, + "target": "llvm", + "strict_mode": true + } +} diff --git a/Apps/HelloWorld/main.py b/Apps/HelloWorld/main.vp similarity index 100% rename from Apps/HelloWorld/main.py rename to Apps/HelloWorld/main.vp diff --git a/Apps/HelloWorld/project.json b/Apps/HelloWorld/project.json index 64f57e1..24f8f88 100644 --- a/Apps/HelloWorld/project.json +++ b/Apps/HelloWorld/project.json @@ -1,31 +1,30 @@ -{ - "name": "HelloWorld", - "version": "1.0.0", - "source_dir": "./", - "temp_dir": "./temp", - "output_dir": "./output", - "compiler": { - "cmd": "llc", - "flags": ["-filetype=obj", "-mtriple=x86_64-none-elf", "-relocation-model=static", "-O2"] - }, - "linker": { - "cmd": "ld.lld.exe", - "flags": [ - "-m", "elf_x86_64", - "-T", "linker.ld", - "--oformat", "elf64-x86-64", - "--strip-all" - ], - "output": "helloworld.elf" - }, - "includes": ["../.."], - "target": { - "triple": "x86_64-none-elf", - "datalayout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" - }, - "options": { - "slice_level": 3, - "target": "llvm", - "strict_mode": true - } -} +{ + "name": "HelloWorld", + "version": "1.0.0", + "source_dir": "./", + "build_dir": "./.tpv_build", + "compiler": { + "cmd": "llc", + "flags": ["-filetype=obj", "-mtriple=x86_64-none-elf", "-relocation-model=static", "-O2"] + }, + "linker": { + "cmd": "ld.lld.exe", + "flags": [ + "-m", "elf_x86_64", + "-T", "linker.ld", + "--oformat", "elf64-x86-64", + "--strip-all" + ], + "output": "helloworld.elf" + }, + "includes": ["../.."], + "target": { + "triple": "x86_64-none-elf", + "datalayout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" + }, + "options": { + "slice_level": 3, + "target": "llvm", + "strict_mode": true + } +} diff --git a/Apps/Scene3D/gfx.py b/Apps/Scene3D/gfx.vp similarity index 100% rename from Apps/Scene3D/gfx.py rename to Apps/Scene3D/gfx.vp diff --git a/Apps/Scene3D/main.py b/Apps/Scene3D/main.vp similarity index 100% rename from Apps/Scene3D/main.py rename to Apps/Scene3D/main.vp diff --git a/Apps/Scene3D/project.json b/Apps/Scene3D/project.json index 295756a..ab770e5 100644 --- a/Apps/Scene3D/project.json +++ b/Apps/Scene3D/project.json @@ -1,31 +1,30 @@ -{ - "name": "Scene3D", - "version": "1.0.0", - "source_dir": "./", - "temp_dir": "./temp", - "output_dir": "./output", - "compiler": { - "cmd": "llc", - "flags": ["-filetype=obj", "-mtriple=x86_64-none-elf", "-relocation-model=static", "-O2"] - }, - "linker": { - "cmd": "ld.lld.exe", - "flags": [ - "-m", "elf_x86_64", - "-T", "linker.ld", - "--oformat", "elf64-x86-64", - "--strip-all" - ], - "output": "scene3d.elf" - }, - "includes": ["../.."], - "target": { - "triple": "x86_64-none-elf", - "datalayout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" - }, - "options": { - "slice_level": 3, - "target": "llvm", - "strict_mode": true - } -} +{ + "name": "Scene3D", + "version": "1.0.0", + "source_dir": "./", + "build_dir": "./.tpv_build", + "compiler": { + "cmd": "llc", + "flags": ["-filetype=obj", "-mtriple=x86_64-none-elf", "-relocation-model=static", "-O2"] + }, + "linker": { + "cmd": "ld.lld.exe", + "flags": [ + "-m", "elf_x86_64", + "-T", "linker.ld", + "--oformat", "elf64-x86-64", + "--strip-all" + ], + "output": "scene3d.elf" + }, + "includes": ["../.."], + "target": { + "triple": "x86_64-none-elf", + "datalayout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" + }, + "options": { + "slice_level": 3, + "target": "llvm", + "strict_mode": true + } +} diff --git a/Apps/Terminal/main.py b/Apps/Terminal/main.vp similarity index 100% rename from Apps/Terminal/main.py rename to Apps/Terminal/main.vp diff --git a/Apps/Terminal/project.json b/Apps/Terminal/project.json index 6f139b0..3b6586b 100644 --- a/Apps/Terminal/project.json +++ b/Apps/Terminal/project.json @@ -1,31 +1,30 @@ -{ - "name": "Terminal", - "version": "1.0.0", - "source_dir": "./", - "temp_dir": "./temp", - "output_dir": "./output", - "compiler": { - "cmd": "llc", - "flags": ["-filetype=obj", "-mtriple=x86_64-none-elf", "-relocation-model=static", "-O2"] - }, - "linker": { - "cmd": "ld.lld.exe", - "flags": [ - "-m", "elf_x86_64", - "-T", "linker.ld", - "--oformat", "elf64-x86-64", - "--strip-all" - ], - "output": "terminal.elf" - }, - "includes": ["../.."], - "target": { - "triple": "x86_64-none-elf", - "datalayout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" - }, - "options": { - "slice_level": 3, - "target": "llvm", - "strict_mode": true - } -} +{ + "name": "Terminal", + "version": "1.0.0", + "source_dir": "./", + "build_dir": "./.tpv_build", + "compiler": { + "cmd": "llc", + "flags": ["-filetype=obj", "-mtriple=x86_64-none-elf", "-relocation-model=static", "-O2"] + }, + "linker": { + "cmd": "ld.lld.exe", + "flags": [ + "-m", "elf_x86_64", + "-T", "linker.ld", + "--oformat", "elf64-x86-64", + "--strip-all" + ], + "output": "terminal.elf" + }, + "includes": ["../.."], + "target": { + "triple": "x86_64-none-elf", + "datalayout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" + }, + "options": { + "slice_level": 3, + "target": "llvm", + "strict_mode": true + } +} diff --git a/Libs/SerialLogger/project.json b/Libs/SerialLogger/project.json index ae8a287..2ec4f0d 100644 --- a/Libs/SerialLogger/project.json +++ b/Libs/SerialLogger/project.json @@ -1,34 +1,33 @@ -{ - "name": "SerialLogger", - "version": "1.0.0", - "source_dir": "./", - "temp_dir": "./temp", - "output_dir": "./output", - "compiler": { - "cmd": "llc", - "flags": ["-filetype=obj", "-mtriple=x86_64-none-elf", "-relocation-model=pic", "-O2"] - }, - "linker": { - "cmd": "ld.lld.exe", - "flags": [ - "-m", "elf_x86_64", - "-T", "linker.ld", - "--oformat", "elf64-x86-64", - "-shared", - "-z", "notext", - "--no-relax", - "--strip-all" - ], - "output": "slog.so" - }, - "includes": ["../.."], - "target": { - "triple": "x86_64-none-elf", - "datalayout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" - }, - "options": { - "slice_level": 3, - "target": "llvm", - "strict_mode": true - } -} +{ + "name": "SerialLogger", + "version": "1.0.0", + "source_dir": "./", + "build_dir": "./.tpv_build", + "compiler": { + "cmd": "llc", + "flags": ["-filetype=obj", "-mtriple=x86_64-none-elf", "-relocation-model=pic", "-O2"] + }, + "linker": { + "cmd": "ld.lld.exe", + "flags": [ + "-m", "elf_x86_64", + "-T", "linker.ld", + "--oformat", "elf64-x86-64", + "-shared", + "-z", "notext", + "--no-relax", + "--strip-all" + ], + "output": "slog.so" + }, + "includes": ["../.."], + "target": { + "triple": "x86_64-none-elf", + "datalayout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" + }, + "options": { + "slice_level": 3, + "target": "llvm", + "strict_mode": true + } +} diff --git a/Libs/SerialLogger/serial_logger.py b/Libs/SerialLogger/serial_logger.vp similarity index 100% rename from Libs/SerialLogger/serial_logger.py rename to Libs/SerialLogger/serial_logger.vp diff --git a/Libs/VPUI64/project.json b/Libs/VPUI64/project.json index 8653f74..8c6e2eb 100644 --- a/Libs/VPUI64/project.json +++ b/Libs/VPUI64/project.json @@ -1,34 +1,33 @@ -{ - "name": "VPUI64", - "version": "1.0.0", - "source_dir": "./", - "temp_dir": "./temp", - "output_dir": "./output", - "compiler": { - "cmd": "llc", - "flags": ["-filetype=obj", "-mtriple=x86_64-none-elf", "-relocation-model=pic", "-O2"] - }, - "linker": { - "cmd": "ld.lld.exe", - "flags": [ - "-m", "elf_x86_64", - "-T", "linker.ld", - "--oformat", "elf64-x86-64", - "-shared", - "-z", "notext", - "--no-relax", - "--strip-all" - ], - "output": "vpui64.so" - }, - "includes": ["../.."], - "target": { - "triple": "x86_64-none-elf", - "datalayout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" - }, - "options": { - "slice_level": 3, - "target": "llvm", - "strict_mode": true - } -} +{ + "name": "VPUI64", + "version": "1.0.0", + "source_dir": "./", + "build_dir": "./.tpv_build", + "compiler": { + "cmd": "llc", + "flags": ["-filetype=obj", "-mtriple=x86_64-none-elf", "-relocation-model=pic", "-O2"] + }, + "linker": { + "cmd": "ld.lld.exe", + "flags": [ + "-m", "elf_x86_64", + "-T", "linker.ld", + "--oformat", "elf64-x86-64", + "-shared", + "-z", "notext", + "--no-relax", + "--strip-all" + ], + "output": "vpui64.so" + }, + "includes": ["../.."], + "target": { + "triple": "x86_64-none-elf", + "datalayout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" + }, + "options": { + "slice_level": 3, + "target": "llvm", + "strict_mode": true + } +} diff --git a/Libs/VPUI64/vpui64.py b/Libs/VPUI64/vpui64.vp similarity index 100% rename from Libs/VPUI64/vpui64.py rename to Libs/VPUI64/vpui64.vp diff --git a/VKernel/Kernel/bootinfo.py b/VKernel/Kernel/bootinfo.vp similarity index 100% rename from VKernel/Kernel/bootinfo.py rename to VKernel/Kernel/bootinfo.vp diff --git a/VKernel/Kernel/drivers/core/cpu/apic.py b/VKernel/Kernel/drivers/core/cpu/apic.vp similarity index 100% rename from VKernel/Kernel/drivers/core/cpu/apic.py rename to VKernel/Kernel/drivers/core/cpu/apic.vp diff --git a/VKernel/Kernel/drivers/core/cpu/cpu.py b/VKernel/Kernel/drivers/core/cpu/cpu.vp similarity index 100% rename from VKernel/Kernel/drivers/core/cpu/cpu.py rename to VKernel/Kernel/drivers/core/cpu/cpu.vp diff --git a/VKernel/Kernel/drivers/core/cpu/fpu.py b/VKernel/Kernel/drivers/core/cpu/fpu.vp similarity index 100% rename from VKernel/Kernel/drivers/core/cpu/fpu.py rename to VKernel/Kernel/drivers/core/cpu/fpu.vp diff --git a/VKernel/Kernel/drivers/devfs/devfs copy.vp b/VKernel/Kernel/drivers/devfs/devfs copy.vp new file mode 100644 index 0000000..053c9bc --- /dev/null +++ b/VKernel/Kernel/drivers/devfs/devfs copy.vp @@ -0,0 +1,385 @@ +import drivers.serial.uart.serial as serial +import viperstring as string +import t, c + + +MAX_FILE_DESCRIPTORS: t.CDefine = 64 +MAX_DEVICE_FILES: t.CDefine = 32 +MAX_DIRECTORIES: t.CDefine = 16 +PATH_BUFFER_SIZE: t.CDefine = 256 + +directories: list[devfs_directory, MAX_DIRECTORIES] = [0] +directory_count: t.CStatic | t.CInt = 0 + +files: list[devfs_file, MAX_DEVICE_FILES] = [0] +file_count: t.CStatic | t.CInt = 0 + + +class _fd_table: + file: devfs_file | t.CPtr + flags: t.CInt + +fd_table: list[_fd_table, MAX_FILE_DESCRIPTORS] = [0] + +@t.Object +class devfs_directory: + name: list[t.CChar, 64] + parent: 'devfs_directory' | t.CPtr + + @staticmethod + def find(path: t.CConst | str, + root_directory: devfs_directory | t.CPtr) -> devfs_directory | t.CPtr: + if not path or string.strchr(path, '/') != path: return None + if not root_directory: return None + + current_dir: devfs_directory | t.CPtr = root_directory + result: list[str, PATH_BUFFER_SIZE] + token = string.split(path, "/", result) + + for i in result: + found: bool = False + for d in range(directory_count): + dirp: devfs_directory = c.Addr(directories[d]) + if dirp.parent == current_dir and string.samestr(dirp.name, i): + current_dir = dirp + found = True + break + if not found: return None + + return current_dir + + @staticmethod + def find_child(name: t.CConst | str, + parent: devfs_directory | t.CPtr) -> devfs_directory | t.CPtr: + for d in range(directory_count): + dirp: devfs_directory = c.Addr(directories[d]) + if dirp.parent == parent and string.samestr(dirp.name, name): + return dirp + return None + + @staticmethod + def list_subdirs(dir_ptr: devfs_directory | t.CPtr, + buffer: str, + size: t.CUInt32T, + pos: t.CInt) -> t.CInt: + for d in range(directory_count): + dirp: devfs_directory = c.Addr(directories[d]) + if dirp.parent == dir_ptr: + name_len: t.CInt = string.strlen(dirp.name) + if pos + name_len + 1 > size: + break + string.strcpy(buffer + pos, dirp.name) + pos += name_len + buffer[pos] = '\n' + pos += 1 + return pos + +@t.Object +@t.CVTable +class devfs_file: + name: list[t.CChar, 64] + private_data: t.CVoid | t.CPtr + parent_dir: 'devfs_directory' | t.CPtr + + @staticmethod + def find_in_dir(file_name: t.CConst | str, + dir_ptr: devfs_directory | t.CPtr) -> devfs_file | t.CPtr: + for f in range(file_count): + fp: devfs_file | t.CPtr = c.Addr(files[f]) + if fp.parent_dir == dir_ptr and string.samestr(fp.name, file_name): + return fp + return None + + @staticmethod + def list_in_dir(dir_ptr: devfs_directory | t.CPtr, + buffer: str, + size: t.CUInt32T, + pos: t.CInt) -> t.CInt: + for f in range(file_count): + filep: devfs_file | t.CPtr = c.Addr(files[f]) + if filep.parent_dir == dir_ptr: + name_len: t.CInt = string.strlen(filep.name) + if pos + name_len + 1 > size: + break + string.strcpy(buffer + pos, filep.name) + pos += name_len + buffer[pos] = '\n' + pos += 1 + return pos + + def open(self, path: t.CConst | str, flags: t.CInt) -> t.CInt: + return 0 + + def close(self, fd: t.CInt) -> t.CInt: + return 0 + + def read(self, fd: t.CInt, buffer: t.CVoid | t.CPtr, size: t.CUInt32T) -> t.CInt: + return 0 + + def write(self, fd: t.CInt, buffer: t.CConst | t.CVoid | t.CPtr, size: t.CUInt32T) -> t.CInt: + return 0 + + def ioctl(self, fd: t.CInt, request: t.CInt, arg: t.CVoid | t.CPtr) -> t.CInt: + return 0 + +@t.Object +class _DevFSObject: + root_directory: devfs_directory | t.CPtr + + def __init__(self): + global directory_count, file_count + self.root_directory = None + directory_count = 0 + file_count = 0 + string.memset(c.Addr(directories), 0, devfs_directory.__sizeof__() * MAX_DIRECTORIES) + string.memset(c.Addr(files), 0, devfs_file.__sizeof__() * MAX_DEVICE_FILES) + string.memset(c.Addr(fd_table), 0, _fd_table.__sizeof__() * MAX_FILE_DESCRIPTORS) + + def create_single_dir(self, parent: devfs_directory | t.CPtr, + dir_name: t.CConst | str) -> devfs_directory | t.CPtr: + global directory_count + if not parent or not dir_name: return None + if directory_count >= MAX_DIRECTORIES: return None + if string.strlen(dir_name) >= 64: return None + + new_dir: devfs_directory | t.CPtr = c.Addr(directories[directory_count]) + directory_count += 1 + + string.strcpy(new_dir.name, dir_name) + new_dir.parent = parent + + return new_dir + + def find_or_create_directory(self, path: t.CConst | str) -> devfs_directory | t.CPtr: + global directory_count + if not path or string.samestr(path, "/"): return None + + if not self.root_directory: + self.root_directory = c.Addr(directories[directory_count]) + directory_count += 1 + string.strcpy(self.root_directory.name, "") + self.root_directory.parent = None + + current: devfs_directory | t.CPtr = self.root_directory + buf: list[t.CChar, PATH_BUFFER_SIZE] + string.memset(c.Addr(buf), 0, PATH_BUFFER_SIZE) + buf_idx: t.CInt = 0 + p: t.CInt = 0 + if path[p] == '/': + p += 1 + while path[p] != '\0': + if path[p] == '/': + if buf_idx > 0: + found_child: devfs_directory | t.CPtr = devfs_directory.find_child(buf, current) + if not found_child: + found_child = self.create_single_dir(current, buf) + if not found_child: return None + current = found_child + string.memset(c.Addr(buf), 0, PATH_BUFFER_SIZE) + buf_idx = 0 + p += 1 + else: + buf[buf_idx] = path[p] + buf_idx += 1 + p += 1 + if buf_idx > 0: + found_child: devfs_directory | t.CPtr = devfs_directory.find_child(buf, current) + if not found_child: + found_child = self.create_single_dir(current, buf) + if not found_child: return None + current = found_child + + return current + + def init(self) -> t.CInt: + self.create_directory("/dev") + self.create_directory("/dev/input") + return 0 + + def create_directory(self, path: t.CConst | str) -> t.CInt: + dir_ptr: devfs_directory | t.CPtr = self.find_or_create_directory(path) + return 0 if dir_ptr else -1 + + def create_file(self, path: t.CConst | str, + private_data: t.CVoid | t.CPtr) -> t.CInt: + global file_count + path_copy: list[t.CChar, PATH_BUFFER_SIZE] + string.memset(c.Addr(path_copy), 0, PATH_BUFFER_SIZE) + string.strcpy(path_copy, path) + + last_slash: str | t.CPtr = string.strrchr(path_copy, '/') + + if not last_slash: return -1 + + last_slash[0] = '\0' + dir_path = path_copy + file_name: str | t.CPtr = last_slash + 1 + + dir_ptr: devfs_directory | t.CPtr = self.find_or_create_directory(dir_path) + if not dir_ptr: return -1 + + if devfs_file.find_in_dir(file_name, dir_ptr): + return -1 + + if file_count >= MAX_DEVICE_FILES: return -1 + + new_file: devfs_file | t.CPtr = c.Addr(files[file_count]) + file_count += 1 + + string.strcpy(new_file.name, file_name) + new_file.private_data = private_data + new_file.parent_dir = dir_ptr + + return 0 + + def open(self, path: t.CConst | str, flags: t.CInt) -> t.CInt: + path_copy: list[t.CChar, PATH_BUFFER_SIZE] + string.memset(c.Addr(path_copy), 0, PATH_BUFFER_SIZE) + string.strcpy(path_copy, path) + + last_slash: str | t.CPtr = string.strrchr(path_copy, '/') + + if not last_slash: return -1 + + last_slash[0] = '\0' + dir_path = path_copy + file_name: str | t.CPtr = last_slash + 1 + + dir_ptr: devfs_directory | t.CPtr = devfs_directory.find(dir_path, self.root_directory) + if not dir_ptr: return -1 + + file_ptr: devfs_file | t.CPtr = devfs_file.find_in_dir(file_name, dir_ptr) + if not file_ptr: return -1 + + if not file_ptr.open: + return -1 + + fd: t.CInt = -1 + for i in range(MAX_FILE_DESCRIPTORS): + if not fd_table[i].file: + fd = i + break + + if fd == -1: return -1 + + ret: t.CInt = file_ptr.open(path, flags) + if ret != 0: return ret + + fd_table[fd].file = file_ptr + fd_table[fd].flags = flags + return fd + + def close(self, fd: t.CInt) -> t.CInt: + if fd < 0 or fd >= MAX_FILE_DESCRIPTORS or not fd_table[fd].file: + return -1 + file_ptr: devfs_file | t.CPtr = fd_table[fd].file + if file_ptr and file_ptr.close: + file_ptr.close(fd) + fd_table[fd].file = None + fd_table[fd].flags = 0 + return 0 + + def read(self, fd: t.CInt, buffer: t.CVoid | t.CPtr, size: t.CUInt32T) -> t.CInt: + if fd < 0 or fd >= MAX_FILE_DESCRIPTORS or not fd_table[fd].file: + return -1 + file_ptr: devfs_file | t.CPtr = fd_table[fd].file + if file_ptr and file_ptr.read: + return file_ptr.read(fd, buffer, size) + return 0 + + def write(self, fd: t.CInt, buffer: t.CConst | t.CVoid | t.CPtr, size: t.CUInt32T) -> t.CInt: + if fd < 0 or fd >= MAX_FILE_DESCRIPTORS or not fd_table[fd].file: + return -1 + file_ptr: devfs_file | t.CPtr = fd_table[fd].file + if file_ptr and file_ptr.write: + return file_ptr.write(fd, buffer, size) + return 0 + + def ioctl(self, fd: t.CInt, cmd: t.CUInt32T, arg: t.CVoid | t.CPtr) -> t.CInt: + if fd < 0 or fd >= MAX_FILE_DESCRIPTORS or not fd_table[fd].file: + return -1 + file_ptr: devfs_file | t.CPtr = fd_table[fd].file + if file_ptr and file_ptr.ioctl: + return file_ptr.ioctl(fd, cmd, arg) + return 0 + + def list_directory(self, path: t.CConst | str, + buffer: str, + size: t.CUInt32T) -> t.CInt: + dir_ptr: devfs_directory | t.CPtr = devfs_directory.find(path, self.root_directory) + if not dir_ptr or not buffer or size == 0: return -1 + + pos: t.CInt = devfs_directory.list_subdirs(dir_ptr, buffer, size, 0) + pos = devfs_file.list_in_dir(dir_ptr, buffer, size, pos) + + return pos + +DevFSObject: _DevFSObject | t.CPtr +_DevFSObject_instance: _DevFSObject + + +def devfs_init() -> t.CInt: + global DevFSObject, _DevFSObject_instance + DevFSObject = c.Addr(_DevFSObject_instance) + _DevFSObject_instance.__init__() + DevFSObject.init() + return 0 + +def devfs_create_directory(path: t.CConst | str) -> t.CInt: + return DevFSObject.create_directory(path) + +def devfs_create_file(path: t.CConst | str, + private_data: t.CVoid | t.CPtr) -> t.CInt: + return DevFSObject.create_file(path, private_data) + +def devfs_open(path: t.CConst | str, flags: t.CInt) -> t.CInt: + return DevFSObject.open(path, flags) + +def devfs_close(fd: t.CInt) -> t.CInt: + return DevFSObject.close(fd) + +def devfs_read(fd: t.CInt, buffer: t.CVoid | t.CPtr, size: t.CUInt32T) -> t.CInt: + return DevFSObject.read(fd, buffer, size) + +def devfs_write(fd: t.CInt, buffer: t.CConst | t.CVoid | t.CPtr, size: t.CUInt32T) -> t.CInt: + return DevFSObject.write(fd, buffer, size) + +def devfs_ioctl(fd: t.CInt, cmd: t.CUInt32T, arg: t.CVoid | t.CPtr) -> t.CInt: + return DevFSObject.ioctl(fd, cmd, arg) + +def devfs_list_directory(path: t.CConst | str, + buffer: str, + size: t.CUInt32T) -> t.CInt: + return DevFSObject.list_directory(path, buffer, size) + +serial0_file: devfs_file + +def serial0_open(self: t.CVoid | t.CPtr, path: t.CConst | str, flags: t.CInt) -> t.CInt: + serial.puts("[serial0] open: ") + serial.puts(path) + serial.puts("\n") + return 0 + +def serial0_close(self: t.CVoid | t.CPtr, fd: t.CInt) -> t.CInt: + serial.puts("[serial0] close\n") + return 0 + +def serial0_read(self: t.CVoid | t.CPtr, fd: t.CInt, buffer: t.CVoid | t.CPtr, size: t.CUInt32T) -> t.CInt: + serial.puts("[serial0] read\n") + return 0 + +def serial0_write(self: t.CVoid | t.CPtr, fd: t.CInt, buffer: t.CConst | t.CVoid | t.CPtr, size: t.CUInt32T) -> t.CInt: + serial.puts("[serial0] write\n") + serial.puts(str(buffer)) + serial.puts("\n") + return size + +def devfs_register_serial0() -> t.CInt: + global serial0_file + serial0_file = devfs_file() + serial0_file.open = serial0_open + serial0_file.close = serial0_close + serial0_file.read = serial0_read + serial0_file.write = serial0_write + serial0_file.ioctl = None + return devfs_create_file("/dev/serial0", serial0_file) diff --git a/VKernel/Kernel/drivers/devfs/devfs.py b/VKernel/Kernel/drivers/devfs/devfs.vp similarity index 100% rename from VKernel/Kernel/drivers/devfs/devfs.py rename to VKernel/Kernel/drivers/devfs/devfs.vp diff --git a/VKernel/Kernel/drivers/fs/fat32/example_fs.py b/VKernel/Kernel/drivers/fs/fat32/example_fs.vp similarity index 100% rename from VKernel/Kernel/drivers/fs/fat32/example_fs.py rename to VKernel/Kernel/drivers/fs/fat32/example_fs.vp diff --git a/VKernel/Kernel/drivers/fs/fat32/fat32.py b/VKernel/Kernel/drivers/fs/fat32/fat32.vp similarity index 100% rename from VKernel/Kernel/drivers/fs/fat32/fat32.py rename to VKernel/Kernel/drivers/fs/fat32/fat32.vp diff --git a/VKernel/Kernel/drivers/fs/fat32/fat32_core.py b/VKernel/Kernel/drivers/fs/fat32/fat32_core.vp similarity index 100% rename from VKernel/Kernel/drivers/fs/fat32/fat32_core.py rename to VKernel/Kernel/drivers/fs/fat32/fat32_core.vp diff --git a/VKernel/Kernel/drivers/fs/fat32/fat32_dir.py b/VKernel/Kernel/drivers/fs/fat32/fat32_dir.vp similarity index 100% rename from VKernel/Kernel/drivers/fs/fat32/fat32_dir.py rename to VKernel/Kernel/drivers/fs/fat32/fat32_dir.vp diff --git a/VKernel/Kernel/drivers/fs/fat32/fat32_diskio.py b/VKernel/Kernel/drivers/fs/fat32/fat32_diskio.vp similarity index 100% rename from VKernel/Kernel/drivers/fs/fat32/fat32_diskio.py rename to VKernel/Kernel/drivers/fs/fat32/fat32_diskio.vp diff --git a/VKernel/Kernel/drivers/fs/fat32/fat32_file.py b/VKernel/Kernel/drivers/fs/fat32/fat32_file.vp similarity index 100% rename from VKernel/Kernel/drivers/fs/fat32/fat32_file.py rename to VKernel/Kernel/drivers/fs/fat32/fat32_file.vp diff --git a/VKernel/Kernel/drivers/fs/fat32/fat32_mkfs.py b/VKernel/Kernel/drivers/fs/fat32/fat32_mkfs.vp similarity index 100% rename from VKernel/Kernel/drivers/fs/fat32/fat32_mkfs.py rename to VKernel/Kernel/drivers/fs/fat32/fat32_mkfs.vp diff --git a/VKernel/Kernel/drivers/fs/fat32/fat32_part.py b/VKernel/Kernel/drivers/fs/fat32/fat32_part.vp similarity index 100% rename from VKernel/Kernel/drivers/fs/fat32/fat32_part.py rename to VKernel/Kernel/drivers/fs/fat32/fat32_part.vp diff --git a/VKernel/Kernel/drivers/fs/fat32/fat32_time.py b/VKernel/Kernel/drivers/fs/fat32/fat32_time.vp similarity index 100% rename from VKernel/Kernel/drivers/fs/fat32/fat32_time.py rename to VKernel/Kernel/drivers/fs/fat32/fat32_time.vp diff --git a/VKernel/Kernel/drivers/fs/fat32/fat32_types.py b/VKernel/Kernel/drivers/fs/fat32/fat32_types.vp similarity index 100% rename from VKernel/Kernel/drivers/fs/fat32/fat32_types.py rename to VKernel/Kernel/drivers/fs/fat32/fat32_types.vp diff --git a/VKernel/Kernel/drivers/fs/fat32/fileio.py b/VKernel/Kernel/drivers/fs/fat32/fileio.vp similarity index 100% rename from VKernel/Kernel/drivers/fs/fat32/fileio.py rename to VKernel/Kernel/drivers/fs/fat32/fileio.vp diff --git a/VKernel/Kernel/drivers/input/keyboard/keyboard.py b/VKernel/Kernel/drivers/input/keyboard/keyboard.vp similarity index 100% rename from VKernel/Kernel/drivers/input/keyboard/keyboard.py rename to VKernel/Kernel/drivers/input/keyboard/keyboard.vp diff --git a/VKernel/Kernel/drivers/input/mouse/mouse.py b/VKernel/Kernel/drivers/input/mouse/mouse.vp similarity index 100% rename from VKernel/Kernel/drivers/input/mouse/mouse.py rename to VKernel/Kernel/drivers/input/mouse/mouse.vp diff --git a/VKernel/Kernel/drivers/serial/uart/serial.py b/VKernel/Kernel/drivers/serial/uart/serial.vp similarity index 100% rename from VKernel/Kernel/drivers/serial/uart/serial.py rename to VKernel/Kernel/drivers/serial/uart/serial.vp diff --git a/VKernel/Kernel/drivers/serial/uart/su8250.py b/VKernel/Kernel/drivers/serial/uart/su8250.vp similarity index 100% rename from VKernel/Kernel/drivers/serial/uart/su8250.py rename to VKernel/Kernel/drivers/serial/uart/su8250.vp diff --git a/VKernel/Kernel/drivers/storage/ide/ide.py b/VKernel/Kernel/drivers/storage/ide/ide.vp similarity index 100% rename from VKernel/Kernel/drivers/storage/ide/ide.py rename to VKernel/Kernel/drivers/storage/ide/ide.vp diff --git a/VKernel/Kernel/drivers/usb/hid/hid.py b/VKernel/Kernel/drivers/usb/hid/hid.vp similarity index 100% rename from VKernel/Kernel/drivers/usb/hid/hid.py rename to VKernel/Kernel/drivers/usb/hid/hid.vp diff --git a/VKernel/Kernel/drivers/usb/hid/usb_kbd.py b/VKernel/Kernel/drivers/usb/hid/usb_kbd.vp similarity index 100% rename from VKernel/Kernel/drivers/usb/hid/usb_kbd.py rename to VKernel/Kernel/drivers/usb/hid/usb_kbd.vp diff --git a/VKernel/Kernel/drivers/usb/hid/usb_mouse.py b/VKernel/Kernel/drivers/usb/hid/usb_mouse.vp similarity index 100% rename from VKernel/Kernel/drivers/usb/hid/usb_mouse.py rename to VKernel/Kernel/drivers/usb/hid/usb_mouse.vp diff --git a/VKernel/Kernel/drivers/usb/pci.py b/VKernel/Kernel/drivers/usb/pci.vp similarity index 100% rename from VKernel/Kernel/drivers/usb/pci.py rename to VKernel/Kernel/drivers/usb/pci.vp diff --git a/VKernel/Kernel/drivers/usb/uhci.py b/VKernel/Kernel/drivers/usb/uhci.vp similarity index 100% rename from VKernel/Kernel/drivers/usb/uhci.py rename to VKernel/Kernel/drivers/usb/uhci.vp diff --git a/VKernel/Kernel/drivers/usb/usb.py b/VKernel/Kernel/drivers/usb/usb.vp similarity index 100% rename from VKernel/Kernel/drivers/usb/usb.py rename to VKernel/Kernel/drivers/usb/usb.vp diff --git a/VKernel/Kernel/drivers/video/ui/sheet.py b/VKernel/Kernel/drivers/video/ui/sheet.vp similarity index 100% rename from VKernel/Kernel/drivers/video/ui/sheet.py rename to VKernel/Kernel/drivers/video/ui/sheet.vp diff --git a/VKernel/Kernel/drivers/video/ui/ui.py b/VKernel/Kernel/drivers/video/ui/ui.vp similarity index 100% rename from VKernel/Kernel/drivers/video/ui/ui.py rename to VKernel/Kernel/drivers/video/ui/ui.vp diff --git a/VKernel/Kernel/drivers/video/vesafb/gfx.py b/VKernel/Kernel/drivers/video/vesafb/gfx.vp similarity index 100% rename from VKernel/Kernel/drivers/video/vesafb/gfx.py rename to VKernel/Kernel/drivers/video/vesafb/gfx.vp diff --git a/VKernel/Kernel/drivers/video/vesafb/vga.py b/VKernel/Kernel/drivers/video/vesafb/vga.vp similarity index 100% rename from VKernel/Kernel/drivers/video/vesafb/vga.py rename to VKernel/Kernel/drivers/video/vesafb/vga.vp diff --git a/VKernel/Kernel/execrunner/elf.py b/VKernel/Kernel/execrunner/elf.vp similarity index 100% rename from VKernel/Kernel/execrunner/elf.py rename to VKernel/Kernel/execrunner/elf.vp diff --git a/VKernel/Kernel/intr/__init__.py b/VKernel/Kernel/intr/__init__.vp similarity index 100% rename from VKernel/Kernel/intr/__init__.py rename to VKernel/Kernel/intr/__init__.vp diff --git a/VKernel/Kernel/intr/gdt.py b/VKernel/Kernel/intr/gdt.vp similarity index 100% rename from VKernel/Kernel/intr/gdt.py rename to VKernel/Kernel/intr/gdt.vp diff --git a/VKernel/Kernel/intr/idt.py b/VKernel/Kernel/intr/idt.vp similarity index 83% rename from VKernel/Kernel/intr/idt.py rename to VKernel/Kernel/intr/idt.vp index 50cbc8f..416bca4 100644 --- a/VKernel/Kernel/intr/idt.py +++ b/VKernel/Kernel/intr/idt.vp @@ -19,60 +19,60 @@ class idt_entry: reserved1: t.CUInt32T idt: t.CArray[idt_entry, 256] = [] -irq_handler_t: t.CTypedef | t.Callable[[], t.CInt] +irq_handler_t: t.CTypedef = t.Callable[[], t.CInt] -def isr0() -> t.CExtern | t.CVoid | t.State: pass -def isr1() -> t.CExtern | t.CVoid | t.State: pass -def isr2() -> t.CExtern | t.CVoid | t.State: pass -def isr3() -> t.CExtern | t.CVoid | t.State: pass -def isr4() -> t.CExtern | t.CVoid | t.State: pass -def isr5() -> t.CExtern | t.CVoid | t.State: pass -def isr6() -> t.CExtern | t.CVoid | t.State: pass -def isr7() -> t.CExtern | t.CVoid | t.State: pass -def isr8() -> t.CExtern | t.CVoid | t.State: pass -def isr9() -> t.CExtern | t.CVoid | t.State: pass -def isr10() -> t.CExtern | t.CVoid | t.State: pass -def isr11() -> t.CExtern | t.CVoid | t.State: pass -def isr12() -> t.CExtern | t.CVoid | t.State: pass -def isr13() -> t.CExtern | t.CVoid | t.State: pass -def isr14() -> t.CExtern | t.CVoid | t.State: pass -def isr15() -> t.CExtern | t.CVoid | t.State: pass -def isr16() -> t.CExtern | t.CVoid | t.State: pass -def isr17() -> t.CExtern | t.CVoid | t.State: pass -def isr18() -> t.CExtern | t.CVoid | t.State: pass -def isr19() -> t.CExtern | t.CVoid | t.State: pass -def isr20() -> t.CExtern | t.CVoid | t.State: pass -def isr21() -> t.CExtern | t.CVoid | t.State: pass -def isr22() -> t.CExtern | t.CVoid | t.State: pass -def isr23() -> t.CExtern | t.CVoid | t.State: pass -def isr24() -> t.CExtern | t.CVoid | t.State: pass -def isr25() -> t.CExtern | t.CVoid | t.State: pass -def isr26() -> t.CExtern | t.CVoid | t.State: pass -def isr27() -> t.CExtern | t.CVoid | t.State: pass -def isr28() -> t.CExtern | t.CVoid | t.State: pass -def isr29() -> t.CExtern | t.CVoid | t.State: pass -def isr30() -> t.CExtern | t.CVoid | t.State: pass -def isr31() -> t.CExtern | t.CVoid | t.State: pass -def isr32() -> t.CExtern | t.CVoid | t.State: pass -def isr33() -> t.CExtern | t.CVoid | t.State: pass -def isr34() -> t.CExtern | t.CVoid | t.State: pass -def isr35() -> t.CExtern | t.CVoid | t.State: pass -def isr36() -> t.CExtern | t.CVoid | t.State: pass -def isr37() -> t.CExtern | t.CVoid | t.State: pass -def isr38() -> t.CExtern | t.CVoid | t.State: pass -def isr39() -> t.CExtern | t.CVoid | t.State: pass -def isr40() -> t.CExtern | t.CVoid | t.State: pass -def isr41() -> t.CExtern | t.CVoid | t.State: pass -def isr42() -> t.CExtern | t.CVoid | t.State: pass -def isr43() -> t.CExtern | t.CVoid | t.State: pass -def isr44() -> t.CExtern | t.CVoid | t.State: pass -def isr45() -> t.CExtern | t.CVoid | t.State: pass -def isr46() -> t.CExtern | t.CVoid | t.State: pass -def isr47() -> t.CExtern | t.CVoid | t.State: pass +def isr0() -> t.State: pass +def isr1() -> t.State: pass +def isr2() -> t.State: pass +def isr3() -> t.State: pass +def isr4() -> t.State: pass +def isr5() -> t.State: pass +def isr6() -> t.State: pass +def isr7() -> t.State: pass +def isr8() -> t.State: pass +def isr9() -> t.State: pass +def isr10() -> t.State: pass +def isr11() -> t.State: pass +def isr12() -> t.State: pass +def isr13() -> t.State: pass +def isr14() -> t.State: pass +def isr15() -> t.State: pass +def isr16() -> t.State: pass +def isr17() -> t.State: pass +def isr18() -> t.State: pass +def isr19() -> t.State: pass +def isr20() -> t.State: pass +def isr21() -> t.State: pass +def isr22() -> t.State: pass +def isr23() -> t.State: pass +def isr24() -> t.State: pass +def isr25() -> t.State: pass +def isr26() -> t.State: pass +def isr27() -> t.State: pass +def isr28() -> t.State: pass +def isr29() -> t.State: pass +def isr30() -> t.State: pass +def isr31() -> t.State: pass +def isr32() -> t.State: pass +def isr33() -> t.State: pass +def isr34() -> t.State: pass +def isr35() -> t.State: pass +def isr36() -> t.State: pass +def isr37() -> t.State: pass +def isr38() -> t.State: pass +def isr39() -> t.State: pass +def isr40() -> t.State: pass +def isr41() -> t.State: pass +def isr42() -> t.State: pass +def isr43() -> t.State: pass +def isr44() -> t.State: pass +def isr45() -> t.State: pass +def isr46() -> t.State: pass +def isr47() -> t.State: pass -def isr80() -> t.CExtern | t.CVoid | t.State: pass +def isr80() -> t.State: pass -def isr_default() -> t.CExtern | t.CVoid | t.State: pass +def isr_default() -> t.State: pass def setGate(num: int, base: t.CUInt64T, sel: t.CUInt16T, flags: t.CUInt8T): global idt diff --git a/VKernel/Kernel/intr/syscall.py b/VKernel/Kernel/intr/syscall.vp similarity index 100% rename from VKernel/Kernel/intr/syscall.py rename to VKernel/Kernel/intr/syscall.vp diff --git a/VKernel/Kernel/main.py b/VKernel/Kernel/main.vp similarity index 100% rename from VKernel/Kernel/main.py rename to VKernel/Kernel/main.vp diff --git a/VKernel/Kernel/mm/mm.py b/VKernel/Kernel/mm/mm.vp similarity index 100% rename from VKernel/Kernel/mm/mm.py rename to VKernel/Kernel/mm/mm.vp diff --git a/VKernel/Kernel/paging/paging.py b/VKernel/Kernel/paging/paging.vp similarity index 100% rename from VKernel/Kernel/paging/paging.py rename to VKernel/Kernel/paging/paging.vp diff --git a/VKernel/Kernel/platform/pch/__init__.py b/VKernel/Kernel/platform/pch/__init__.vp similarity index 100% rename from VKernel/Kernel/platform/pch/__init__.py rename to VKernel/Kernel/platform/pch/__init__.vp diff --git a/VKernel/Kernel/platform/pch/pic.py b/VKernel/Kernel/platform/pch/pic.vp similarity index 100% rename from VKernel/Kernel/platform/pch/pic.py rename to VKernel/Kernel/platform/pch/pic.vp diff --git a/VKernel/Kernel/platform/pch/pit.py b/VKernel/Kernel/platform/pch/pit.vp similarity index 100% rename from VKernel/Kernel/platform/pch/pit.py rename to VKernel/Kernel/platform/pch/pit.vp diff --git a/VKernel/Kernel/platform/pch/rtc.py b/VKernel/Kernel/platform/pch/rtc.vp similarity index 100% rename from VKernel/Kernel/platform/pch/rtc.py rename to VKernel/Kernel/platform/pch/rtc.vp diff --git a/VKernel/Kernel/platform/pch/timer.py b/VKernel/Kernel/platform/pch/timer.vp similarity index 100% rename from VKernel/Kernel/platform/pch/timer.py rename to VKernel/Kernel/platform/pch/timer.vp diff --git a/VKernel/Kernel/sched/coroutine.py b/VKernel/Kernel/sched/coroutine.vp similarity index 100% rename from VKernel/Kernel/sched/coroutine.py rename to VKernel/Kernel/sched/coroutine.vp diff --git a/VKernel/Kernel/sched/process.py b/VKernel/Kernel/sched/process.vp similarity index 100% rename from VKernel/Kernel/sched/process.py rename to VKernel/Kernel/sched/process.vp diff --git a/VKernel/Kernel/sched/sched.py b/VKernel/Kernel/sched/sched.vp similarity index 100% rename from VKernel/Kernel/sched/sched.py rename to VKernel/Kernel/sched/sched.vp diff --git a/VKernel/Kernel/services/desktop.py b/VKernel/Kernel/services/desktop.vp similarity index 100% rename from VKernel/Kernel/services/desktop.py rename to VKernel/Kernel/services/desktop.vp diff --git a/VKernel/Kernel/services/keyboard.py b/VKernel/Kernel/services/keyboard.vp similarity index 100% rename from VKernel/Kernel/services/keyboard.py rename to VKernel/Kernel/services/keyboard.vp diff --git a/VKernel/Kernel/services/mouse.py b/VKernel/Kernel/services/mouse.vp similarity index 100% rename from VKernel/Kernel/services/mouse.py rename to VKernel/Kernel/services/mouse.vp diff --git a/VKernel/project.json b/VKernel/project.json index 000a00f..6355bdb 100644 --- a/VKernel/project.json +++ b/VKernel/project.json @@ -1,31 +1,30 @@ -{ - "name": "Kernel", - "version": "1.0.0", - "source_dir": "./Kernel", - "temp_dir": "./temp", - "output_dir": "./output", - "compiler": { - "cmd": "llc", - "flags": ["-filetype=obj", "-mtriple=x86_64-none-elf", "-relocation-model=static", "-O2"] - }, - "linker": { - "cmd": "ld.lld.exe", - "flags": [ - "-m", "elf_x86_64", - "-T", "linker.ld", - "--oformat", "binary", - "--strip-all" - ], - "output": "kernel.bin" - }, - "includes": ["../../includes"], - "target": { - "triple": "x86_64-none-elf", - "datalayout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" - }, - "options": { - "slice_level": 3, - "target": "llvm", - "strict_mode": true - } -} +{ + "name": "Kernel", + "version": "1.0.0", + "source_dir": "./Kernel", + "build_dir": "./.tpv_build", + "compiler": { + "cmd": "llc", + "flags": ["-filetype=obj", "-mtriple=x86_64-none-elf", "-relocation-model=static", "-O2"] + }, + "linker": { + "cmd": "ld.lld.exe", + "flags": [ + "-m", "elf_x86_64", + "-T", "linker.ld", + "--oformat", "binary", + "--strip-all" + ], + "output": "kernel.bin" + }, + "includes": ["../../includes"], + "target": { + "triple": "x86_64-none-elf", + "datalayout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" + }, + "options": { + "slice_level": 3, + "target": "llvm", + "strict_mode": true + } +} diff --git a/vpsdk/__init__.py b/vpsdk/__init__.vp similarity index 100% rename from vpsdk/__init__.py rename to vpsdk/__init__.vp diff --git a/vpsdk/dynlib.py b/vpsdk/dynlib.vp similarity index 100% rename from vpsdk/dynlib.py rename to vpsdk/dynlib.vp diff --git a/vpsdk/fs.py b/vpsdk/fs.vp similarity index 100% rename from vpsdk/fs.py rename to vpsdk/fs.vp diff --git a/vpsdk/process.py b/vpsdk/process.vp similarity index 100% rename from vpsdk/process.py rename to vpsdk/process.vp diff --git a/vpsdk/stdlib.py b/vpsdk/stdlib.vp similarity index 100% rename from vpsdk/stdlib.py rename to vpsdk/stdlib.vp diff --git a/vpsdk/syscall.py b/vpsdk/syscall.vp similarity index 100% rename from vpsdk/syscall.py rename to vpsdk/syscall.vp diff --git a/vpsdk/vpui.py b/vpsdk/vpui.vp similarity index 100% rename from vpsdk/vpui.py rename to vpsdk/vpui.vp diff --git a/vpsdk/window.py b/vpsdk/window.vp similarity index 100% rename from vpsdk/window.py rename to vpsdk/window.vp