├── .github
└── FUNDING.yml
├── .gitignore
├── .travis.yml
├── BuildConf
└── amd64
│ ├── Makefile.cfg
│ └── default.mk
├── CODE_OF_CONDUCT.md
├── CODING_CONVENTIONS.md
├── Externals
└── CrossCompiler
│ ├── Makefile
│ └── Patches
│ └── binutils
│ ├── bfd
│ └── config.bfd.patch
│ ├── config.sub.patch
│ ├── gas
│ └── configure.tgt.patch
│ └── ld
│ ├── Makefile.in.patch
│ ├── configure.tgt.patch
│ └── emulparams
│ └── elf_x86_64_trinix.sh
├── Kernel
├── Core
│ └── Runtime.cxx
├── Makefile
├── arch
│ └── amd64
│ │ ├── Core
│ │ ├── Paging.dx
│ │ └── time.dx
│ │ ├── boot
│ │ ├── boot.s
│ │ └── load.s
│ │ ├── gdt.d
│ │ ├── globals.d
│ │ ├── idt.d
│ │ ├── kernel.ld
│ │ ├── low_level.s
│ │ ├── main.d
│ │ ├── msr.d
│ │ ├── pic.d
│ │ ├── pit.d
│ │ ├── registers.d
│ │ ├── sse.d
│ │ ├── syscall_handler.d
│ │ └── tss.d
├── common
│ ├── address.d
│ ├── bitfield.d
│ ├── number.d
│ ├── package.d
│ └── text.d
├── invariant.d
├── io
│ ├── ioport.d
│ ├── log.d
│ └── vga.d
├── kernel_main.d
├── memory
│ └── frame_allocator.d
├── object.d
├── process_manager
│ ├── process.d
│ ├── scheduler.d
│ ├── signal.d
│ └── thread.d
├── system
│ └── syscalls.d
└── utils.d
├── LICENCE
├── Makefile
├── Makefile.Version.cfg
├── Makefile.cfg
├── README.md
├── Root
└── System
│ ├── Boot
│ └── grub2
│ │ ├── fonts
│ │ └── unicode.pf2
│ │ ├── grub.cfg
│ │ ├── grubenv
│ │ ├── i386-pc
│ │ ├── 915resolution.mod
│ │ ├── acpi.mod
│ │ ├── adler32.mod
│ │ ├── affs.mod
│ │ ├── afs.mod
│ │ ├── ahci.mod
│ │ ├── all_video.mod
│ │ ├── aout.mod
│ │ ├── archelp.mod
│ │ ├── at_keyboard.mod
│ │ ├── ata.mod
│ │ ├── backtrace.mod
│ │ ├── bfs.mod
│ │ ├── biosdisk.mod
│ │ ├── bitmap.mod
│ │ ├── bitmap_scale.mod
│ │ ├── blocklist.mod
│ │ ├── boot.mod
│ │ ├── bsd.mod
│ │ ├── btrfs.mod
│ │ ├── bufio.mod
│ │ ├── cat.mod
│ │ ├── cbfs.mod
│ │ ├── cbls.mod
│ │ ├── cbmemc.mod
│ │ ├── cbtable.mod
│ │ ├── cbtime.mod
│ │ ├── chain.mod
│ │ ├── cmdline_cat_test.mod
│ │ ├── cmosdump.mod
│ │ ├── cmostest.mod
│ │ ├── cmp.mod
│ │ ├── command.lst
│ │ ├── configfile.mod
│ │ ├── cpio.mod
│ │ ├── cpio_be.mod
│ │ ├── cpuid.mod
│ │ ├── crc64.mod
│ │ ├── crypto.lst
│ │ ├── crypto.mod
│ │ ├── cryptodisk.mod
│ │ ├── cs5536.mod
│ │ ├── date.mod
│ │ ├── datehook.mod
│ │ ├── datetime.mod
│ │ ├── disk.mod
│ │ ├── diskfilter.mod
│ │ ├── div_test.mod
│ │ ├── dm_nv.mod
│ │ ├── drivemap.mod
│ │ ├── echo.mod
│ │ ├── efiemu.mod
│ │ ├── ehci.mod
│ │ ├── elf.mod
│ │ ├── eval.mod
│ │ ├── exfat.mod
│ │ ├── exfctest.mod
│ │ ├── ext2.mod
│ │ ├── extcmd.mod
│ │ ├── fat.mod
│ │ ├── file.mod
│ │ ├── font.mod
│ │ ├── freedos.mod
│ │ ├── fs.lst
│ │ ├── fshelp.mod
│ │ ├── functional_test.mod
│ │ ├── gcry_arcfour.mod
│ │ ├── gcry_blowfish.mod
│ │ ├── gcry_camellia.mod
│ │ ├── gcry_cast5.mod
│ │ ├── gcry_crc.mod
│ │ ├── gcry_des.mod
│ │ ├── gcry_dsa.mod
│ │ ├── gcry_idea.mod
│ │ ├── gcry_md4.mod
│ │ ├── gcry_md5.mod
│ │ ├── gcry_rfc2268.mod
│ │ ├── gcry_rijndael.mod
│ │ ├── gcry_rmd160.mod
│ │ ├── gcry_rsa.mod
│ │ ├── gcry_seed.mod
│ │ ├── gcry_serpent.mod
│ │ ├── gcry_sha1.mod
│ │ ├── gcry_sha256.mod
│ │ ├── gcry_sha512.mod
│ │ ├── gcry_tiger.mod
│ │ ├── gcry_twofish.mod
│ │ ├── gcry_whirlpool.mod
│ │ ├── gdb.mod
│ │ ├── geli.mod
│ │ ├── gettext.mod
│ │ ├── gfxmenu.mod
│ │ ├── gfxterm.mod
│ │ ├── gfxterm_background.mod
│ │ ├── gfxterm_menu.mod
│ │ ├── gptsync.mod
│ │ ├── gzio.mod
│ │ ├── halt.mod
│ │ ├── hashsum.mod
│ │ ├── hdparm.mod
│ │ ├── hello.mod
│ │ ├── help.mod
│ │ ├── hexdump.mod
│ │ ├── hfs.mod
│ │ ├── hfsplus.mod
│ │ ├── hfspluscomp.mod
│ │ ├── http.mod
│ │ ├── hwmatch.mod
│ │ ├── iorw.mod
│ │ ├── iso9660.mod
│ │ ├── jfs.mod
│ │ ├── jpeg.mod
│ │ ├── keylayouts.mod
│ │ ├── keystatus.mod
│ │ ├── ldm.mod
│ │ ├── legacy_password_test.mod
│ │ ├── legacycfg.mod
│ │ ├── linux.mod
│ │ ├── linux16.mod
│ │ ├── loadenv.mod
│ │ ├── loopback.mod
│ │ ├── ls.mod
│ │ ├── lsacpi.mod
│ │ ├── lsapm.mod
│ │ ├── lsmmap.mod
│ │ ├── lspci.mod
│ │ ├── luks.mod
│ │ ├── lvm.mod
│ │ ├── lzopio.mod
│ │ ├── macbless.mod
│ │ ├── macho.mod
│ │ ├── mda_text.mod
│ │ ├── mdraid09.mod
│ │ ├── mdraid09_be.mod
│ │ ├── mdraid1x.mod
│ │ ├── memdisk.mod
│ │ ├── memrw.mod
│ │ ├── minicmd.mod
│ │ ├── minix.mod
│ │ ├── minix2.mod
│ │ ├── minix2_be.mod
│ │ ├── minix3.mod
│ │ ├── minix3_be.mod
│ │ ├── minix_be.mod
│ │ ├── mmap.mod
│ │ ├── moddep.lst
│ │ ├── modinfo.sh
│ │ ├── morse.mod
│ │ ├── mpi.mod
│ │ ├── msdospart.mod
│ │ ├── multiboot.mod
│ │ ├── multiboot2.mod
│ │ ├── nativedisk.mod
│ │ ├── net.mod
│ │ ├── newc.mod
│ │ ├── nilfs2.mod
│ │ ├── normal.mod
│ │ ├── ntfs.mod
│ │ ├── ntfscomp.mod
│ │ ├── ntldr.mod
│ │ ├── odc.mod
│ │ ├── offsetio.mod
│ │ ├── ohci.mod
│ │ ├── part_acorn.mod
│ │ ├── part_amiga.mod
│ │ ├── part_apple.mod
│ │ ├── part_bsd.mod
│ │ ├── part_dfly.mod
│ │ ├── part_dvh.mod
│ │ ├── part_gpt.mod
│ │ ├── part_msdos.mod
│ │ ├── part_plan.mod
│ │ ├── part_sun.mod
│ │ ├── part_sunpc.mod
│ │ ├── partmap.lst
│ │ ├── parttool.lst
│ │ ├── parttool.mod
│ │ ├── password.mod
│ │ ├── password_pbkdf2.mod
│ │ ├── pata.mod
│ │ ├── pbkdf2.mod
│ │ ├── pbkdf2_test.mod
│ │ ├── pci.mod
│ │ ├── pcidump.mod
│ │ ├── plan9.mod
│ │ ├── play.mod
│ │ ├── png.mod
│ │ ├── priority_queue.mod
│ │ ├── probe.mod
│ │ ├── procfs.mod
│ │ ├── progress.mod
│ │ ├── pxe.mod
│ │ ├── pxechain.mod
│ │ ├── raid5rec.mod
│ │ ├── raid6rec.mod
│ │ ├── read.mod
│ │ ├── reboot.mod
│ │ ├── regexp.mod
│ │ ├── reiserfs.mod
│ │ ├── relocator.mod
│ │ ├── romfs.mod
│ │ ├── scsi.mod
│ │ ├── search.mod
│ │ ├── search_fs_file.mod
│ │ ├── search_fs_uuid.mod
│ │ ├── search_label.mod
│ │ ├── sendkey.mod
│ │ ├── serial.mod
│ │ ├── setjmp.mod
│ │ ├── setjmp_test.mod
│ │ ├── setpci.mod
│ │ ├── sfs.mod
│ │ ├── signature_test.mod
│ │ ├── sleep.mod
│ │ ├── sleep_test.mod
│ │ ├── spkmodem.mod
│ │ ├── squash4.mod
│ │ ├── syslinuxcfg.mod
│ │ ├── tar.mod
│ │ ├── terminal.lst
│ │ ├── terminal.mod
│ │ ├── terminfo.mod
│ │ ├── test.mod
│ │ ├── test_blockarg.mod
│ │ ├── testload.mod
│ │ ├── testspeed.mod
│ │ ├── tftp.mod
│ │ ├── tga.mod
│ │ ├── time.mod
│ │ ├── tr.mod
│ │ ├── trig.mod
│ │ ├── true.mod
│ │ ├── truecrypt.mod
│ │ ├── udf.mod
│ │ ├── ufs1.mod
│ │ ├── ufs1_be.mod
│ │ ├── ufs2.mod
│ │ ├── uhci.mod
│ │ ├── usb.mod
│ │ ├── usb_keyboard.mod
│ │ ├── usbms.mod
│ │ ├── usbserial_common.mod
│ │ ├── usbserial_ftdi.mod
│ │ ├── usbserial_pl2303.mod
│ │ ├── usbserial_usbdebug.mod
│ │ ├── usbtest.mod
│ │ ├── vbe.mod
│ │ ├── verify.mod
│ │ ├── vga.mod
│ │ ├── vga_text.mod
│ │ ├── video.lst
│ │ ├── video.mod
│ │ ├── video_bochs.mod
│ │ ├── video_cirrus.mod
│ │ ├── video_colors.mod
│ │ ├── video_fb.mod
│ │ ├── videoinfo.mod
│ │ ├── videotest.mod
│ │ ├── videotest_checksum.mod
│ │ ├── xfs.mod
│ │ ├── xnu.mod
│ │ ├── xnu_uuid.mod
│ │ ├── xnu_uuid_test.mod
│ │ ├── xzio.mod
│ │ ├── zfs.mod
│ │ ├── zfscrypt.mod
│ │ └── zfsinfo.mod
│ │ └── locale
│ │ ├── en_AU.mo
│ │ ├── en_CA.mo
│ │ ├── en_GB.mo
│ │ ├── es.mo
│ │ └── zh_CN.mo
│ └── Library
│ └── Fonts
│ ├── Hiragino-kaku-gothic-pro-w3.otf
│ ├── Maya.ttf
│ ├── MesloLGSDZ-Bold.ttf
│ ├── MesloLGSDZ-BoldItalic.ttf
│ ├── MesloLGSDZ-Italic.ttf
│ ├── MesloLGSDZ-Regular.ttf
│ ├── System-Bold.ttf
│ ├── System-Light.ttf
│ ├── System-Medium.ttf
│ └── System-Regular.ttf
├── Tools
└── Garbage
│ ├── CPU.d
│ ├── File.d
│ ├── FileSystem
│ ├── DevFS.d
│ ├── NullDev.d
│ ├── RandomDev.d
│ ├── TmpFS.d
│ ├── ZeroDev.d
│ └── package.d
│ ├── LibraryLoader.dx
│ ├── Linker
│ ├── BinaryLoader.d
│ ├── ElfLoader.d
│ └── package.d
│ ├── Modules
│ ├── Display
│ │ ├── BochsGA
│ │ │ ├── BochsGA.dproj
│ │ │ ├── DriverInfo.d
│ │ │ ├── Main.d
│ │ │ └── Makefile
│ │ └── Makefile.tpl
│ ├── FileSystem
│ │ ├── Ext2
│ │ │ ├── DriverInfo.d
│ │ │ ├── Ext2.mdproj
│ │ │ ├── Ext2.visualdproj
│ │ │ ├── Ext2BlockNode.d
│ │ │ ├── Ext2CharNode.d
│ │ │ ├── Ext2DirectoryNode.d
│ │ │ ├── Ext2FileNode.d
│ │ │ ├── Ext2FileSystem.d
│ │ │ ├── Ext2PipeNode.d
│ │ │ ├── Ext2SocketNode.d
│ │ │ ├── Ext2SymLinkNode.d
│ │ │ ├── Main.d
│ │ │ ├── Makefile
│ │ │ └── package.d
│ │ └── Makefile.tpl
│ ├── Input
│ │ ├── Keyboard
│ │ │ ├── DriverInfo.d
│ │ │ ├── Keyboard.mdproj
│ │ │ ├── Keyboard.visualdproj
│ │ │ ├── Keysyms.d
│ │ │ ├── Main.d
│ │ │ ├── Makefile
│ │ │ └── package.d
│ │ ├── Makefile.tpl
│ │ ├── Mouse
│ │ │ ├── DriverInfo.d
│ │ │ ├── Main.d
│ │ │ ├── Makefile
│ │ │ ├── Mouse.mdproj
│ │ │ ├── Mouse.visualdproj
│ │ │ └── package.d
│ │ └── PS2KeyboardMouse
│ │ │ ├── DriverInfo.d
│ │ │ ├── KBC8042.d
│ │ │ ├── KeyboardTransTab.d
│ │ │ ├── Main.d
│ │ │ ├── Makefile
│ │ │ ├── PS2Keyboard.d
│ │ │ ├── PS2KeyboardMouse.mdproj
│ │ │ ├── PS2KeyboardMouse.visualdproj
│ │ │ ├── PS2Mouse.d
│ │ │ └── package.d
│ ├── LinkerScript.ld
│ ├── Makefile.tpl
│ └── Storage
│ │ ├── ATA
│ │ ├── ATA.mdproj
│ │ ├── ATA.visualdproj
│ │ ├── ATAController.d
│ │ ├── ATADrive.d
│ │ ├── DriverInfo.d
│ │ ├── Main.d
│ │ └── Makefile
│ │ └── Makefile.tpl
│ ├── ObjectManager
│ ├── DeviceManager.d
│ ├── IBlockDevice.d
│ ├── ModuleManager.d
│ ├── Resource.d
│ ├── ResourceManager.d
│ └── package.d
│ ├── Property.d
│ ├── StringBuilder.d
│ ├── TaskManager
│ ├── EventWaitHandle.d
│ ├── Mutex.d
│ ├── Process.d
│ ├── Process.s
│ ├── ReaderWriterLock.d
│ ├── Semaphore.d
│ ├── SharedMemory.d
│ ├── Task.d
│ ├── Thread.d
│ └── package.d
│ ├── Terminal
│ ├── Makefile.tpl
│ └── VTY
│ │ ├── DriverInfo.d
│ │ ├── Main.d
│ │ └── Makefile
│ ├── Termios.d
│ ├── VFSManager
│ ├── BlockCache.d
│ ├── BlockNode.d
│ ├── CharNode.d
│ ├── DirectoryNode.d
│ ├── FSNode.d
│ ├── FileAttributes.d
│ ├── FileNode.d
│ ├── IFileSystem.d
│ ├── MemoryNode.d
│ ├── Partition.d
│ ├── PipeNode.d
│ ├── SocketNode.d
│ ├── SymLinkNode.d
│ ├── VFS.d
│ └── package.d
│ └── proxy.d
├── Userspace
├── Application
│ └── Test
│ │ ├── Makefile
│ │ └── main.d
├── Binary
│ └── NOTHING
├── Bundle
│ └── NOTHING
├── FileSystem
│ └── Makefile
├── Framework
│ └── NOTHING
├── Library
│ ├── Makefile
│ ├── Makefile.cfg
│ └── crt0.o_src
│ │ ├── Makefile
│ │ ├── crt0.c
│ │ ├── crt0S.c
│ │ ├── crti.s
│ │ └── crtn.s
├── Makefile.cfg
└── common_settings.mk
└── old
├── Library
├── Array.d
├── BitArray.d
├── Casters.d
├── LinkedList.d
├── List.d
├── SpinLock.d
├── String.d
└── package.d
├── Log.d
├── MemoryManager
├── Heap.d
├── IPaging.d
├── PhysicalMemory.d
├── VirtualMemory.d
└── package.d
├── Multiboot.d
└── package.d
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: rikarin # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
13 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.o
2 | *.map
3 | *.log
4 | *.userprefs
5 | *.dynlib
6 | *.dsm
7 | *.gz
8 | *.dep
9 | *.kext.*
10 | *.xo.*
11 | *.bz2
12 | *.DS_Store
13 | *.bin
14 | *.img
15 |
16 | /Externals/Output
17 | /Externals/CrossCompiler/binutils-*
18 | /Externals/CrossCompiler/build-*
19 | /KernelLand/Kernel/obj-*
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | dist: trusty
3 |
4 | language: d
5 |
6 | d:
7 | - ldc
8 |
9 | before_install:
10 | - sudo apt-get update -qq
11 | - sudo apt-get install -y nasm
12 |
13 | install:
14 | # - wget -O doveralls https://github.com/ColdenCullen/doveralls/releases/download/v1.1.5/doveralls_linux_travis
15 |
16 | script:
17 | - "make"
18 | # - dub test -b unittest-cov
19 | # - ./doveralls
20 |
--------------------------------------------------------------------------------
/BuildConf/amd64/Makefile.cfg:
--------------------------------------------------------------------------------
1 | #
2 | # amd64 Configuration
3 | #
4 |
5 | EXTERNAL_TARGET = x86_64-unknown-linux
6 | #PREFIX = $(EXTERNAL_TARGET)-
7 |
8 | AS = $(PREFIX)nasm
9 | DD = $(PREFIX)ldc2
10 | CC = $(PREFIX)clang
11 | LD = $(PREFIX)ld
12 | STRIP = $(PREFIX)strip
13 |
14 | KERNEL_ASFLAGS := -felf64
15 | KERNEL_LDFLAGS := -nodefaultlibs
16 | KERNEL_CFLAGS := -mcmodel=kernel -nostdlib -ffreestanding -mno-red-zone -Wall -O3 \
17 | -fno-stack-protector
18 | KERNEL_DFLAGS := -debuglib= -defaultlib= -code-model=kernel -disable-red-zone \
19 | -w -wi -de -O3 -mattr=-sse
20 |
21 | DYNMOD_DFLAGS := -debuglib= -defaultlib= -disable-red-zone -w -wi -de -O3 -mattr=-sse \
22 | -relocation-model=pic
23 |
--------------------------------------------------------------------------------
/BuildConf/amd64/default.mk:
--------------------------------------------------------------------------------
1 | # Libraries .dylib .a .o
2 | LIBRARIES +=
3 |
4 | # Binaries
5 | BINARIES +=
6 |
7 | # Applications .app (Compositor required)
8 | APPLICATIONS +=
9 |
10 | # Frameworks .framework (Compositor required)
11 | FRAMEWORKS +=
12 |
13 | # Bundle .bundle (Autonomus system (bin, lib, doc, share, etc) for ported apps like llvm, ldc, etc.)
14 | BUNDLES +=
--------------------------------------------------------------------------------
/Externals/CrossCompiler/Patches/binutils/bfd/config.bfd.patch:
--------------------------------------------------------------------------------
1 | --- binutils-2.24/bfd/config.bfd 2013-11-04 16:33:37.000000000 +0100
2 | +++ config.bfd 2014-11-15 18:41:37.118358400 +0100
3 | @@ -1640,6 +1640,12 @@
4 | w65-*-*)
5 | targ_defvec=w65_vec
6 | ;;
7 | +
8 | + x86_64-*-trinix*)
9 | + targ_defvec=bfd_elf64_x86_64_vec
10 | + targ_selvecs=bfd_elf32_i386_vec
11 | + want64=true
12 | + ;;
13 |
14 | xgate-*-*)
15 | targ_defvec=bfd_elf32_xgate_vec
16 |
--------------------------------------------------------------------------------
/Externals/CrossCompiler/Patches/binutils/config.sub.patch:
--------------------------------------------------------------------------------
1 | --- binutils-2.24/config.sub 2013-11-26 12:37:33.000000000 +0100
2 | +++ config.sub 2014-11-15 18:33:55.787443800 +0100
3 | @@ -1356,6 +1356,7 @@
4 | | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
5 | | -sym* | -kopensolaris* | -plan9* \
6 | | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
7 | + | -trinix* \
8 | | -aos* | -aros* \
9 | | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
10 | | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
11 |
--------------------------------------------------------------------------------
/Externals/CrossCompiler/Patches/binutils/gas/configure.tgt.patch:
--------------------------------------------------------------------------------
1 | --- binutils-2.24/gas/configure.tgt 2013-11-04 16:33:37.000000000 +0100
2 | +++ configure.tgt 2014-11-15 18:46:01.546644700 +0100
3 | @@ -200,6 +200,7 @@
4 |
5 | i370-*-elf* | i370-*-linux*) fmt=elf ;;
6 |
7 | + i386-*-trinix*) fmt=elf ;;
8 | i386-ibm-aix*) fmt=coff em=i386aix ;;
9 | i386-sequent-bsd*) fmt=aout em=dynix ;;
10 | i386-*-beospe*) fmt=coff em=pe ;;
11 |
--------------------------------------------------------------------------------
/Externals/CrossCompiler/Patches/binutils/ld/Makefile.in.patch:
--------------------------------------------------------------------------------
1 | --- binutils-2.24/ld/Makefile.in 2013-11-26 12:37:33.000000000 +0100
2 | +++ Makefile.in 2014-11-16 17:37:00.577923777 +0100
3 | @@ -830,6 +830,7 @@
4 | eelf_k1om.c \
5 | eelf_k1om_fbsd.c \
6 | eelf_x86_64.c \
7 | + eelf_x86_64_trinix.c \
8 | eelf_x86_64_fbsd.c \
9 | eelf_x86_64_nacl.c \
10 | eelf_x86_64_sol2.c \
11 | @@ -3622,6 +3623,9 @@
12 | eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \
13 | $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
14 | ${GENSCRIPTS} elf_x86_64 "$(tdir_elf_x86_64)"
15 | +eelf_x86_64_trinix.c: $(srcdir)/emulparams/elf_x86_64_trinix.sh \
16 | + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
17 | + ${GENSCRIPTS} elf_x86_64_trinix "$(tdir_elf_x86_64_trinix)"
18 | eelf_x86_64_fbsd.c: $(srcdir)/emulparams/elf_x86_64_fbsd.sh \
19 | $(srcdir)/emulparams/elf_x86_64.sh \
20 | $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
21 |
--------------------------------------------------------------------------------
/Externals/CrossCompiler/Patches/binutils/ld/configure.tgt.patch:
--------------------------------------------------------------------------------
1 | --- binutils-2.24/ld/configure.tgt 2013-11-26 12:37:33.000000000 +0100
2 | +++ configure.tgt 2014-11-15 18:53:00.046631300 +0100
3 | @@ -732,6 +732,7 @@
4 | targ_extra_emuls="elf64tilegx elf32tilegx elf32tilegx_be"
5 | targ_extra_libpath=$targ_extra_emuls ;;
6 | tilepro-*-*) targ_emul=elf32tilepro ;;
7 | +x86_64-*-trinix*) targ_emul=elf_x86_64_trinix ;;
8 | v850*-*-*) targ_emul=v850_rh850
9 | targ_extra_emuls=v850
10 | ;;
11 |
--------------------------------------------------------------------------------
/Externals/CrossCompiler/Patches/binutils/ld/emulparams/elf_x86_64_trinix.sh:
--------------------------------------------------------------------------------
1 | SCRIPT_NAME=elf
2 | ELFSIZE=64
3 | OUTPUT_FORMAT="elf64-x86-64"
4 | TEXT_START_ADDR=0x400000
5 | MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
6 | COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
7 | ARCH="i386:x86-64"
8 | MACHINE=
9 | TEMPLATE_NAME=elf32
10 | GENERATE_SHLIB_SCRIPT=yes
11 | GENERATE_PIE_SCRIPT=yes
12 | NO_SMALL_DATA=yes
13 | SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0"
14 | NOP=0x90909090
15 |
16 | ELF_INTERPRETER_NAME=\"/System/Library/Linker.so\"
--------------------------------------------------------------------------------
/Kernel/arch/amd64/boot/load.s:
--------------------------------------------------------------------------------
1 | ;;;
2 | ; Copyright (c) Rikarin and contributors. All rights reserved.
3 | ;
4 | ; This source code is licensed under the MIT license found in the
5 | ; LICENSE file in the root directory of this source tree.
6 | ;;
7 |
8 | [bits 64]
9 |
10 | %define INITIAL_KSTACK_SIZE 8
11 | KERNEL_BASE equ 0xFFFFFFFF80000000
12 |
13 | [extern main]
14 |
15 | [extern __multiboot_ptr]
16 | [extern __multiboot_magic]
17 |
18 | [section .text]
19 | [global start64]
20 | start64:
21 | ; Load Registers
22 | mov ax, 0x10
23 | mov ds, ax
24 | mov ss, ax
25 | mov es, ax
26 | mov fs, ax
27 | mov gs, ax
28 |
29 | ; Go to high memory
30 | mov rax, start64.himem
31 | jmp rax
32 |
33 | .himem:
34 | xor rax, rax
35 | mov dr0, rax ; Set CPU0
36 |
37 | ; Set kernel stack
38 | mov rsp, 0xFFFFFFFF80010000 + INITIAL_KSTACK_SIZE * 0x1000
39 |
40 | ; Call main
41 | mov edi, [__multiboot_magic - KERNEL_BASE]
42 | mov esi, [__multiboot_ptr - KERNEL_BASE]
43 | call main
44 |
45 | cli
46 | .hlt:
47 | hlt
48 | jmp .hlt
--------------------------------------------------------------------------------
/Kernel/arch/amd64/globals.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module arch.amd64.globals;
8 |
9 |
10 | abstract final class LinkerScript {
11 | static:
12 | @trusted: nothrow: @nogc:
13 | const(void *) kernelBase() {
14 | return cast(void *)&__linker_kernel_start;
15 | }
16 |
17 | const(void *) kernelEnd() {
18 | return cast(void *)&__linker_kernel_end;
19 | }
20 | }
21 |
22 | private extern(C) extern __gshared {
23 | ubyte __linker_kernel_start;
24 | ubyte __linker_kernel_end;
25 | }
--------------------------------------------------------------------------------
/Kernel/arch/amd64/kernel.ld:
--------------------------------------------------------------------------------
1 | ENTRY(lstart)
2 |
3 |
4 | __linker_kernel_start = 0xFFFFFFFF80000000;
5 | lstart = start - __linker_kernel_start;
6 |
7 |
8 | SECTIONS {
9 | . = SIZEOF_HEADERS;
10 | __load_addr = .;
11 |
12 | .multiboot : AT(ADDR(.multiboot)) {
13 | *(.multiboot)
14 | }
15 |
16 | . += 0x100000;
17 | . += __linker_kernel_start;
18 |
19 | .text ALIGN(0x1000) : AT(ADDR(.text) - __linker_kernel_start) {
20 | *(.text .text.*)
21 | }
22 |
23 | .rodata ALIGN(0x1000) : AT(ADDR(.rodata) - __linker_kernel_start) {
24 | *(.initpd)
25 | *(.rodata .rodata.*)
26 | *(.rdata)
27 | }
28 |
29 | .minfo ALIGN(0x1000) : AT(ADDR(.minfo) - __linker_kernel_start) {
30 | *(.minfo)
31 | }
32 |
33 | .deh_eh ALIGN(0x1000) : AT(ADDR(.deh_eh) - __linker_kernel_start) {
34 | *(.deh_eh)
35 | }
36 |
37 | .dtors.d_dso_dtor ALIGN(0x1000) : AT(ADDR(.dtors.d_dso_dtor) - __linker_kernel_start) {
38 | *(.dtors .dtors.*)
39 | *(.dtors.d_dso_dtor)
40 | }
41 |
42 | .ctors.d_dso_ctor ALIGN(0x1000) : AT(ADDR(.ctors.d_dso_ctor) - __linker_kernel_start) {
43 | *(.ctors .ctors.*)
44 | *(.ctors.d_dso_ctor)
45 | }
46 |
47 | .eh_frame ALIGN(0x1000) : AT(ADDR(.eh_frame) - __linker_kernel_start) {
48 | *(.eh_frame)
49 | }
50 |
51 | .data ALIGN(0x1000) : AT(ADDR(.data) - __linker_kernel_start) {
52 | *(.padata)
53 | *(.data .data.*)
54 | }
55 |
56 | .tdata ALIGN(0x1000) : AT(ADDR(.tdata) - __linker_kernel_start) {
57 | *(.tdata .tdata.*)
58 | }
59 |
60 | .got ALIGN(0x1000) : AT(ADDR(.got) - __linker_kernel_start) {
61 | *(.got)
62 | *(.got.plt)
63 | }
64 |
65 | .bss : AT(ADDR(.bss) - __linker_kernel_start) {
66 | __bss_start = .;
67 | *(.COMMON)
68 | *(.bss)
69 | }
70 |
71 | .tbss : AT(ADDR(.tbss) - __linker_kernel_start) {
72 | *(.tbss .tbss.*)
73 | }
74 |
75 | __linker_kernel_end = (. + 0xFFF) & 0xFFFFFFFFFFFFF000;
76 |
77 | /DISCARD/ : {
78 | *(.comment)
79 | *(.note .note.*)
80 | *(.rela.*)
81 | }
82 | }
--------------------------------------------------------------------------------
/Kernel/arch/amd64/low_level.s:
--------------------------------------------------------------------------------
1 | [bits 64]
2 | [global __sse_save]
3 | [global __sse_enable]
4 | [global __sse_restore]
5 | [global __sse_disable]
6 | [global __sse_initialize]
7 |
8 | [global __read_rip]
9 | [global __refresh_iretq]
10 |
11 | [global __get_cr0]
12 | [global __get_cr2]
13 | [global __get_cr3]
14 | [global __get_cr4]
15 |
16 |
17 | __sse_initialize:
18 | mov rax, cr4
19 | or ax, (1 << 9)|(1 << 10)
20 | mov cr4, rax
21 | mov rax, cr0
22 | and ax, ~(1 << 2)
23 | or rax, (1 << 1)
24 | mov rax, cr0
25 | ret
26 |
27 | __sse_disable:
28 | mov rax, cr0
29 | or ax, 1 << 3
30 | mov cr0, rax
31 | ret
32 |
33 | __sse_enable:
34 | mov rax, cr0
35 | and ax, ~(1 << 3)
36 | mov cr0, rax
37 | ret
38 |
39 | __sse_save:
40 | fxsave [rdi]
41 | ret
42 |
43 | __sse_restore:
44 | fxrstor [rdi]
45 | ret
46 |
47 | __read_rip:
48 | pop rax
49 | jmp rax
50 |
51 | __refresh_iretq:
52 | mov RAX, 0x10
53 | mov DS, AX
54 | mov ES, AX
55 | mov SS, AX
56 |
57 | mov RDX, RSP
58 | push RAX
59 | push RDX
60 | pushfq
61 | push 0x08
62 |
63 | mov RAX, .r
64 | push RAX
65 | iretq
66 |
67 | .r:
68 | ret
69 |
70 | __get_cr0:
71 | mov RAX, CR1
72 | ret
73 |
74 | __get_cr2:
75 | mov RAX, CR2
76 | ret
77 |
78 | __get_cr3:
79 | mov RAX, CR3
80 | ret
81 |
82 | __get_cr4:
83 | mov RAX, CR4
84 | ret
--------------------------------------------------------------------------------
/Kernel/arch/amd64/main.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module arch.amd64.main;
8 |
9 | import arch.amd64.gdt;
10 | import arch.amd64.idt;
11 | import arch.amd64.pit;
12 | import arch.amd64.syscall_handler;
13 | import kernel_main;
14 |
15 |
16 | extern(C) void main(uint magic, void* info) @safe nothrow { // TODO: nogc?
17 | GDT.init();
18 | IDT.init();
19 | PIT.init();
20 | SyscallHandler.init();
21 |
22 | kernelMain();
23 | }
24 |
--------------------------------------------------------------------------------
/Kernel/arch/amd64/msr.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module arch.amd64.msr;
8 |
9 |
10 | abstract final class MSR {
11 | static:
12 | @safe: nothrow: @nogc:
13 | void write(MSRRegister register, ulong value) {
14 | ulong hi, lo;
15 | lo = value & 0xFFFFFFFF;
16 | hi = value >> 32UL;
17 |
18 | asm nothrow @nogc @trusted {
19 | mov RDX, hi;
20 | mov RAX, lo;
21 | mov RCX, register;
22 | wrmsr;
23 | }
24 | }
25 |
26 | ulong read(MSRRegister register) {
27 | uint hi, lo;
28 |
29 | asm nothrow @nogc @trusted {
30 | mov RCX, register;
31 | rdmsr;
32 | mov lo, RAX;
33 | mov hi, RDX;
34 | }
35 |
36 | ulong ret = hi;
37 | ret <<= 32;
38 | ret |= lo;
39 |
40 | return ret;
41 | }
42 | }
43 |
44 |
45 | enum MSRRegister : uint {
46 | ApicBase = 0x1B,
47 | Efer = 0xC0000080,
48 | Star = 0xC0000081,
49 | LStar = 0xC0000082,
50 | CStar = 0xC0000083,
51 | SFMask = 0xC0000084,
52 | FSBase = 0xC0000100,
53 | GSBase = 0xC0000101
54 | }
55 |
--------------------------------------------------------------------------------
/Kernel/arch/amd64/pic.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module arch.amd64.pic;
8 |
9 | import io.ioport;
10 |
11 |
12 | final abstract class PIC {
13 | static:
14 | @safe: nothrow: @nogc:
15 | private enum MasterPort = 0x21;
16 | private enum SlavePort = 0xA1;
17 |
18 | ref bool isEnabled() @trusted {
19 | __gshared bool enabled = true;
20 | return enabled;
21 | }
22 |
23 | void disable() {
24 | outPort!ubyte(MasterPort, 0xFF);
25 | outPort!ubyte(SlavePort, 0xFF);
26 |
27 | isEnabled = false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/Kernel/arch/amd64/pit.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module arch.amd64.pit;
8 |
9 | import arch.amd64.idt;
10 | import arch.amd64.registers;
11 | import io.ioport;
12 |
13 |
14 | final abstract class PIT {
15 | static:
16 | @safe: nothrow: @nogc:
17 | private __gshared bool m_enabled;
18 | private __gshared uint m_freqency;
19 | private __gshared size_t m_counter;
20 |
21 | private enum Scale = 1193180;
22 |
23 | private enum Register {
24 | A = 0x40,
25 | B = 0x41,
26 | C = 0x42,
27 | Control = 0x43,
28 | Set = 0x36
29 | }
30 |
31 | void init(uint frequency = 1000) @trusted {
32 | IDT.register(irq(0), &onTick);
33 |
34 | m_freqency = frequency;
35 | uint divisor = Scale / frequency;
36 |
37 | outPort(Register.Control, Register.Set);
38 | outPort(Register.A, divisor & 0xFF);
39 | outPort(Register.A, (divisor >> 8) & 0xFF);
40 | }
41 |
42 | void earlySleep(size_t amount) @trusted {
43 | size_t endAt = m_counter + amount;
44 |
45 | while (m_counter < endAt) {
46 | asm pure nothrow @nogc {
47 | hlt;
48 | }
49 | }
50 | }
51 |
52 | private void onTick(scope Registers* r) @trusted {
53 | m_counter++;
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/Kernel/arch/amd64/registers.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module arch.amd64.registers;
8 |
9 |
10 | struct Registers {
11 | @safe: nothrow: @nogc:
12 | align(1):
13 | ulong r15, r14, r13, r12, r11, r10, r9, r8;
14 | ulong rbp, rdi, rsi, rdx, rcx, rbx, rax;
15 | ulong intNumber, errorCode;
16 | ulong rip, cs, flags, rsp, ss;
17 |
18 | ulong cr0() {
19 | return __get_cr0();
20 | }
21 |
22 | ulong cr2() {
23 | return __get_cr2();
24 | }
25 |
26 | ulong cr3() {
27 | return __get_cr3();
28 | }
29 |
30 | ulong cr4() {
31 | return __get_cr4();
32 | }
33 | }
34 |
35 | private extern(C) extern nothrow @trusted @nogc {
36 | ulong __get_cr0();
37 | ulong __get_cr2();
38 | ulong __get_cr3();
39 | ulong __get_cr4();
40 | }
41 |
--------------------------------------------------------------------------------
/Kernel/arch/amd64/sse.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module arch.amd64.sse;
8 |
9 |
10 | final abstract class SSE {
11 | static:
12 | @safe: nothrow: @nogc:
13 | void init() {
14 | __sse_initialize();
15 | }
16 |
17 | void enable() {
18 | __sse_enable();
19 | }
20 |
21 | void disable() {
22 | __sse_disable();
23 | }
24 |
25 | void save(void* ptr) {
26 | __sse_save(ptr);
27 | }
28 |
29 | void restore(void* ptr) {
30 | __sse_restore(ptr);
31 | }
32 | }
33 |
34 | private extern(C) extern nothrow @trusted @nogc {
35 | void __sse_enable();
36 | void __sse_disable();
37 | void __sse_initialize();
38 | void __sse_save(void* ptr);
39 | void __sse_restore(void* ptr);
40 | }
41 |
--------------------------------------------------------------------------------
/Kernel/arch/amd64/tss.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module arch.amd64.tss;
8 |
9 | import common.address;
10 | import common.bitfield;
11 |
12 |
13 | struct TaskStateSegment {
14 | align(1):
15 | private uint _reserved_0;
16 | VAddr[3] rsp;
17 | private ulong _reserved_1;
18 | VAddr[7] ist;
19 | private ulong _reserved_2;
20 | private ushort _reserved_3;
21 |
22 | ushort ioPermBitMapOffset = ioBitmap.offsetof;
23 | align(4096) ubyte[1 << 16] ioBitmap;
24 | ubyte stopper = 0xFF;
25 | }
26 |
27 | struct TSSDescriptor1 {
28 | @trusted: nothrow: @nogc:
29 | align(1):
30 | ushort limit0 = 0x67;
31 | ushort base0;
32 | ubyte base16;
33 |
34 | private ubyte flags1;
35 | mixin(bitfield!(flags1, "type", 4, "res0", 1, "dpl", 2, "present", 1));
36 |
37 | private ubyte flags2;
38 | mixin(bitfield!(flags2, "limit16", 4, "available", 1, "res1", 2, "granularity", 1));
39 |
40 | ubyte base24;
41 |
42 | this(ref TaskStateSegment tss) {
43 | type = 9;
44 | present = 1;
45 | available = 1;
46 |
47 | ulong ptr = cast(ulong)&tss;
48 | base0 = ptr & 0xFFFF;
49 | base16 = (ptr >> 16) & 0xFF;
50 | base24 = (ptr >> 24) & 0xFF;
51 | }
52 | }
53 |
54 | struct TSSDescriptor2 {
55 | @trusted: nothrow: @nogc:
56 | align(1):
57 | uint base32;
58 | private uint _reserved_0;
59 |
60 | this(ref TaskStateSegment tss) {
61 | base32 = cast(ulong)(&tss) >> 0x20;
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/Kernel/common/address.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module common.address;
8 |
9 |
10 | // TODO: implement this in the future
11 | alias VAddr = ulong;
12 | alias PAddr = ulong;
13 | alias PAddr32 = uint;
14 |
--------------------------------------------------------------------------------
/Kernel/common/bitfield.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module common.bitfield;
8 |
9 |
10 | template bitfield(alias data, args...) {
11 | const char[] bitfield = bitfieldShim!((typeof(data)).stringof, data, args).ret;
12 | }
13 |
14 | template bitfieldShim(const char[] typeStr, alias data, args...) {
15 | const char[] name = data.stringof;
16 | const char[] ret = bitfieldImpl!(typeStr, name, 0, args).ret;
17 | }
18 |
19 | template bitfieldImpl(const char[] typeStr, const char[] nameStr, int offset, args...) {
20 | static if (!args.length) {
21 | const char[] ret = "";
22 | } else {
23 | const name = args[0];
24 | const size = args[1];
25 | const mask = bitmask!size;
26 |
27 | const char[] getter = typeStr ~ " " ~ name ~ "() { return (" ~ nameStr ~ " >> " ~ itoh!(offset) ~ ") & " ~ itoh!(mask) ~ "; }\n";
28 |
29 | const char[] setter = "void " ~ name ~ "(" ~ typeStr ~ " val) { " ~ nameStr ~ " = (" ~ nameStr ~ " & " ~ itoh!(~(mask << offset))
30 | ~ ") | ((val & " ~ itoh!(mask) ~ ") << " ~ itoh!(offset) ~ "); }\n";
31 |
32 | const char[] ret = getter ~ setter ~ bitfieldImpl!(typeStr, nameStr, offset + size, args[2 .. $]).ret;
33 | }
34 | }
35 |
36 | template bitmask(long size) {
37 | const long bitmask = (1UL << size) - 1;
38 | }
39 |
40 | template itoh(long i) {
41 | const char[] itoh = "0x" ~ intToStr!(i, 16);
42 | }
43 |
44 | template digits(long i) {
45 | const char[] digits = "0123456789abcdefghijklmnopqrstuvwxyz"[0 .. i];
46 | }
47 |
48 | template intToStr(ulong i, int base) {
49 | static if(i >= base) {
50 | const char[] intToStr = intToStr!(i / base, base) ~ digits!base[i % base];
51 | } else {
52 | const char[] intToStr = "" ~ digits!base[i % base];
53 | }
54 | }
--------------------------------------------------------------------------------
/Kernel/common/number.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module common.number;
8 |
9 |
10 | T min(T)(T a, T b) {
11 | return a < b ? a : b;
12 | }
13 |
14 | T max(T)(T a, T b) {
15 | return a > b ? a : b;
16 | }
17 |
--------------------------------------------------------------------------------
/Kernel/common/package.d:
--------------------------------------------------------------------------------
1 | module common;
2 |
3 | public import common.address;
4 | public import common.bitfield;
5 | public import common.number;
--------------------------------------------------------------------------------
/Kernel/common/text.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module common.text;
8 |
9 |
10 | struct BinaryNumer {
11 | ulong value;
12 | }
13 |
14 | BinaryNumer bin(ulong value) {
15 | return BinaryNumer(value);
16 | }
17 |
18 | struct HexNumer {
19 | ulong value;
20 | }
21 |
22 | HexNumer bin(ulong value) {
23 | return HexNumer(value);
24 | }
25 |
--------------------------------------------------------------------------------
/Kernel/invariant.d:
--------------------------------------------------------------------------------
1 | void _d_invariant(Object o) {
2 | }
--------------------------------------------------------------------------------
/Kernel/io/ioport.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module io.ioport;
8 |
9 |
10 | T inPort(T = byte)(ushort port) @trusted nothrow {
11 | T ret;
12 | asm @safe nothrow @nogc {
13 | mov DX, port;
14 | }
15 |
16 | static if (is(T == byte) || is(T == ubyte)) {
17 | asm @safe nothrow @nogc {
18 | in AL, DX;
19 | mov ret, AL;
20 | }
21 | } else static if (is(T == short) || is(T == ushort)) {
22 | asm @safe nothrow @nogc {
23 | in AX, DX;
24 | mov ret, AX;
25 | }
26 | } else static if (is(T == int) || is(T == uint)) {
27 | asm @safe nothrow @nogc {
28 | in EAX, DX;
29 | mov ret, EAX;
30 | }
31 | }
32 |
33 | return ret;
34 | }
35 |
36 | void outPort(T = byte)(ushort port, int data) @trusted nothrow {
37 | asm @safe nothrow @nogc {
38 | mov EAX, data;
39 | mov DX, port;
40 | }
41 |
42 | static if (is(T == byte) || is(T == ubyte)) {
43 | asm @safe nothrow @nogc {
44 | out DX, AL;
45 | }
46 | } else static if (is(T == short) || is(T == ushort)) {
47 | asm @safe nothrow @nogc {
48 | out DX, AX;
49 | }
50 | } else static if (is(T == int) || is(T == uint)) {
51 | asm @safe nothrow @nogc {
52 | out DX, EAX;
53 | }
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/Kernel/io/log.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module io.log;
8 |
9 |
10 | final abstract class Log {
11 | @safe: nothrow:
12 | static void init() {
13 |
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Kernel/kernel_main.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module kernel_main;
8 |
9 | import io.log;
10 | import io.vga;
11 | import memory.frame_allocator;
12 | import process_manager.scheduler;
13 |
14 |
15 | void kernelMain() @safe nothrow {
16 | Log.init();
17 | VGA.init();
18 |
19 | //Log.write("Trinix is starting up...");
20 | //Log("version: %d.%d.%d", 0, 1, cast(int)giBuildNumber); // TODO
21 |
22 | FrameAllocator.init();
23 |
24 | // multiboot2 mem tables
25 | // preallocate frames for mem tables
26 | // init paging
27 | // init heap
28 | // init tls
29 | // parse multiboot 2
30 | // ACPI
31 | // IOAPIC
32 | // LAPIC and calibration
33 | // multi cpu/thread
34 | Scheduler.init();
35 | // we are done! Run init.d
36 |
37 |
38 | //Log("multiboot2");
39 | //Multiboot.ParseHeader(magic, info);
40 |
41 |
42 |
43 |
44 | /**
45 | * TODO:
46 | * o Handle memory block from multiboot2 header
47 | * o Allocate correct size of BitArray
48 | * o Check if memory mapped regions work properly
49 | * + o Make interface for Paging and move Paging.d to the arch-specific folder
50 | */
51 | //Log("Physical Memory");
52 | //PhysicalMemory.Initialize();
53 |
54 | /**
55 | * TOOD:
56 | * - Size(const void * ptr) - will return the size of allocateds memory in heap
57 | * o Implement GC from druntime library
58 | *
59 | */
60 | //Log("Virtual Memory");
61 | //VirtualMemory.Initialize();
62 | }
63 |
64 | /*void RemapPIC() {
65 | Port.Write(0x20, 0x11);
66 | Port.Write(0xA0, 0x11);
67 | Port.Write(0x21, 0x20);
68 | Port.Write(0xA1, 0x28);
69 | Port.Write(0x21, 0x04);
70 | Port.Write(0xA1, 0x02);
71 | Port.Write(0x21, 0x01);
72 | Port.Write(0xA1, 0x01);
73 | Port.Write(0x21, 0x00);
74 | Port.Write(0xA1, 0x00);
75 | }*/
76 |
77 | extern(C) extern immutable(char)* TrinixVersion;
78 |
--------------------------------------------------------------------------------
/Kernel/memory/frame_allocator.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module memory.frame_allocator;
8 |
9 |
10 | final abstract class FrameAllocator {
11 | @safe: nothrow:
12 | static void init() {
13 |
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Kernel/process_manager/process.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module process_manager.process;
8 |
9 |
10 | class Process {
11 |
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/Kernel/process_manager/scheduler.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module process_manager.scheduler;
8 |
9 |
10 | final abstract class Scheduler {
11 | @safe: nothrow:
12 | static void init() {
13 |
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Kernel/process_manager/signal.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module process_manager.signal;
8 |
9 |
10 | enum Signal {
11 | Invalid,
12 | HangUp,
13 | Interrupt,
14 | Quit,
15 | IllegalInstruction,
16 | Trap,
17 | Abort,
18 | EmulationTrap,
19 | ArithmeticException,
20 | Kill,
21 | BusError,
22 | SegmentationFault,
23 | BadSysCall,
24 | BrokenPipe,
25 | Alarm,
26 | Terminated,
27 | User1,
28 | SUser2,
29 | ChildStatus,
30 | PowerFail,
31 | WindowSizeChange,
32 | UrgentSocketCondition,
33 | Poll,
34 | Stop,
35 | Suspend,
36 | // Continue,
37 | // SIGTTIN, /* TTY input has stopped */
38 | // SIGTTOUT, /* TTY output has stopped */
39 | // SIGVTALRM, /* Virtual timer has expired */
40 | // SIGPROF, /* Profiling timer expired */
41 | // SIGXCPU, /* CPU time limit exceeded */
42 | // SIGXFSZ /* File size limit exceeded */
43 | }
--------------------------------------------------------------------------------
/Kernel/process_manager/thread.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module process_manager.thread;
8 |
9 |
10 | class Thread {
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/Kernel/system/syscalls.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module system.syscalls;
8 |
9 |
10 | enum Syscall : ulong {
11 | Nop = 0x000,
12 |
13 | MessageCurrent = 0x100,
14 | MessageSend = 0x101,
15 | MessageError = 0x102,
16 | MessageReceive = 0x103,
17 | MessageReply = 0x104,
18 | MessageRead = 0x105,
19 | MessageWrite = 0x106,
20 | MessageInfo = 0x107,
21 | MessageSendPulse = 0x108,
22 | MessageDeliverEvent = 0x109,
23 | MessageKeyData = 0x110,
24 | MessageReadIO = 0x111,
25 | MessageReceivePulse = 0x112,
26 | MessageVerifyEvent = 0x113,
27 |
28 | SignalEmit = 0x200,
29 | SignalAttach = 0x201,
30 | SignalProcMask = 0x202,
31 | SignalSuspend = 0x203,
32 | SignalWaitInfo = 0x204,
33 |
34 | ChannelCreate = 0x300,
35 | ChannelDestroy = 0x301,
36 |
37 | ConnectAttach = 0x400,
38 | ConnectDetach = 0x401,
39 | ConnectServerInfo = 0x402,
40 | ConnectClientInfo = 0x403,
41 | ConnectFlags = 0x404,
42 |
43 | ThreadCreate = 0x500,
44 | ThreadDestroy = 0x501,
45 | ThreadDestroyAll = 0x502,
46 | ThreadDetach = 0x503,
47 | ThreadJoin = 0x504,
48 | ThreadCancel = 0x505,
49 | ThreadControl = 0x506,
50 |
51 | InterruptAttach = 0x601,
52 | InterruptDetach = 0x602,
53 | InterruptWait = 0x603,
54 | InterruptMask = 0x604,
55 | InterruptUnmask = 0x605,
56 |
57 | ClockTime = 0x700,
58 | ClockAdjust = 0x701,
59 | ClockPeriod = 0x702,
60 | ClockId = 0x703,
61 |
62 | TimerCreate = 0x800,
63 | TimerDestroy = 0x801,
64 | TimerSetTime = 0x802,
65 | TimerInfo = 0x803,
66 | TimerAlarm = 0x804,
67 | TimerTimeout = 0x805,
68 |
69 | SyncCreate = 0x900,
70 | SyncDestroy = 0x901,
71 | SyncMutexLock = 0x902,
72 | SyncMutexUnlock = 0x903,
73 | SyncMutexRevive = 0x904,
74 | SyncCondVarWait = 0x905,
75 | SyncCondVarSignal = 0x906,
76 | SyncSemaphorePost = 0x907,
77 | SyncSemaphoreWait = 0x908,
78 | SyncControl = 0x909,
79 |
80 | SchedulerGet = 0x1000,
81 | SchedulerSet = 0x1001,
82 | SchedulerYield = 0x1002,
83 | SchedulerInfo = 0x1003,
84 | SchedulerControl = 0x1004,
85 | }
86 |
--------------------------------------------------------------------------------
/Kernel/utils.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module utils;
8 |
9 | int memcmp(const(void)* src1, const(void)* src2, size_t size) @trusted @nogc pure nothrow {
10 | const(ubyte)* p1 = cast(const(ubyte)*)src1;
11 | const(ubyte)* p2 = cast(const(ubyte)*)src2;
12 | while (size--) {
13 | if (*p1 < *p2)
14 | return -1;
15 | else if (*p1 > *p2)
16 | return 1;
17 |
18 | p1++;
19 | p2++;
20 | }
21 | return 0;
22 | }
23 |
24 | size_t memcpy(void* dest, const(void)* src, size_t size) @trusted @nogc pure nothrow {
25 | ubyte* d = cast(ubyte*)dest;
26 | const(ubyte)* s = cast(const(ubyte)*)src;
27 | size_t n = size;
28 | while (n--)
29 | *(d++) = *(s++);
30 |
31 | return size;
32 | }
33 |
34 | size_t strlen(const(char)* str) @trusted @nogc pure nothrow {
35 | if (!str) {
36 | return 0;
37 | }
38 |
39 | size_t count;
40 | while (*(str++)) {
41 | count++;
42 | }
43 |
44 | return count;
45 | }
46 |
--------------------------------------------------------------------------------
/LICENCE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2013-2017 Rikarin and contributors. All rights reserved.
2 |
3 | Permission is hereby granted, free of charge, to any person
4 | obtaining a copy of this software and associated documentation
5 | files (the "Software"), to deal in the Software without
6 | restriction, including without limitation the rights to use,
7 | copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the
9 | Software is furnished to do so, subject to the following
10 | conditions:
11 |
12 | The above copyright notice and this permission notice shall be
13 | included in all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 | OTHER DEALINGS IN THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/Makefile.Version.cfg:
--------------------------------------------------------------------------------
1 | TRAVIS_BUILD_NUMBER ?= 0
2 | SYSTEM_VERSION = 0.1.${TRAVIS_BUILD_NUMBER}
3 | RC_VERSION = 0
4 |
5 |
6 | ifeq ($(BUILD_TYPE),rc)
7 | SYSTEM_VERSION := $(SYSTEM_VERSION)-rc$(RC_VERSION)
8 | endif
9 |
10 | ifeq ($(BUILD_TYPE),release)
11 | SYSTEM_VERSION := $(SYSTEM_VERSION)
12 | endif
13 |
--------------------------------------------------------------------------------
/Makefile.cfg:
--------------------------------------------------------------------------------
1 | #
2 | # System Build Configuration
3 | #
4 | #
5 |
6 | SYS_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
7 | SYS_DIR := $(shell cd $(SYS_DIR) && pwd)
8 |
9 | ROOT_DIR := $(SYS_DIR)/Root
10 | COMPILER_DIR := $(SYS_DIR)/Externals/Output
11 |
12 | # Default build programs
13 | PATH := $(COMPILER_DIR)/bin:$(PATH)
14 | RM := rm -rf
15 | MKDIR := mkdir -p
16 | GZIP := tar -czf
17 |
18 | # Setup default compilation options
19 | ifndef $(BUILD_TYPE)
20 | BUILD_TYPE := debug
21 | endif
22 |
23 | ifeq ($(ARCH),)
24 | ARCH := amd64
25 | endif
26 |
27 | ifeq ($(PLATFORM),)
28 | PLATFORM := default
29 | endif
30 |
31 | -include $(SYS_DIR)/Makefile.Version.cfg
32 | -include $(SYS_DIR)/BuildConf/$(ARCH)/Makefile.cfg
33 | -include $(SYS_DIR)/BuildConf/$(ARCH)/$(PLATFORM).mk
34 |
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/fonts/unicode.pf2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/fonts/unicode.pf2
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/grub.cfg:
--------------------------------------------------------------------------------
1 | set timeout=0
2 | set default=0
3 |
4 | menuentry "Trinix" {
5 | multiboot2 /System/Trinix.gz root=/System/Devices/hda0
6 | boot
7 | }
8 |
9 | #module2 /System/Modules/Filesystem_Ext2.kext.gz cmdtest2
10 | #module2 /System/Modules/a.gz testicek
11 | #module2 /System/Modules/b.gz test9
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/grubenv:
--------------------------------------------------------------------------------
1 | # GRUB Environment Block
2 | #######################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/915resolution.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/915resolution.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/acpi.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/acpi.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/adler32.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/adler32.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/affs.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/affs.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/afs.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/afs.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/ahci.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/ahci.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/all_video.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/all_video.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/aout.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/aout.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/archelp.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/archelp.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/at_keyboard.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/at_keyboard.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/ata.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/ata.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/backtrace.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/backtrace.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/bfs.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/bfs.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/biosdisk.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/biosdisk.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/bitmap.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/bitmap.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/bitmap_scale.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/bitmap_scale.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/blocklist.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/blocklist.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/boot.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/boot.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/bsd.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/bsd.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/btrfs.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/btrfs.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/bufio.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/bufio.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/cat.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/cat.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/cbfs.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/cbfs.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/cbls.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/cbls.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/cbmemc.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/cbmemc.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/cbtable.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/cbtable.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/cbtime.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/cbtime.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/chain.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/chain.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/cmdline_cat_test.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/cmdline_cat_test.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/cmosdump.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/cmosdump.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/cmostest.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/cmostest.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/cmp.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/cmp.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/configfile.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/configfile.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/cpio.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/cpio.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/cpio_be.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/cpio_be.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/cpuid.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/cpuid.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/crc64.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/crc64.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/crypto.lst:
--------------------------------------------------------------------------------
1 | RIJNDAEL: gcry_rijndael
2 | RIJNDAEL192: gcry_rijndael
3 | RIJNDAEL256: gcry_rijndael
4 | AES128: gcry_rijndael
5 | AES-128: gcry_rijndael
6 | AES-192: gcry_rijndael
7 | AES-256: gcry_rijndael
8 | ADLER32: adler32
9 | CRC64: crc64
10 | ARCFOUR: gcry_arcfour
11 | BLOWFISH: gcry_blowfish
12 | CAMELLIA128: gcry_camellia
13 | CAMELLIA192: gcry_camellia
14 | CAMELLIA256: gcry_camellia
15 | CAST5: gcry_cast5
16 | CRC32: gcry_crc
17 | CRC32RFC1510: gcry_crc
18 | CRC24RFC2440: gcry_crc
19 | DES: gcry_des
20 | 3DES: gcry_des
21 | DSA: gcry_dsa
22 | IDEA: gcry_idea
23 | MD4: gcry_md4
24 | MD5: gcry_md5
25 | RFC2268_40: gcry_rfc2268
26 | AES: gcry_rijndael
27 | AES192: gcry_rijndael
28 | AES256: gcry_rijndael
29 | RIPEMD160: gcry_rmd160
30 | RSA: gcry_rsa
31 | SEED: gcry_seed
32 | SERPENT128: gcry_serpent
33 | SERPENT192: gcry_serpent
34 | SERPENT256: gcry_serpent
35 | SHA1: gcry_sha1
36 | SHA224: gcry_sha256
37 | SHA256: gcry_sha256
38 | SHA512: gcry_sha512
39 | SHA384: gcry_sha512
40 | TIGER192: gcry_tiger
41 | TIGER: gcry_tiger
42 | TIGER2: gcry_tiger
43 | TWOFISH: gcry_twofish
44 | TWOFISH128: gcry_twofish
45 | WHIRLPOOL: gcry_whirlpool
46 |
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/crypto.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/crypto.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/cryptodisk.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/cryptodisk.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/cs5536.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/cs5536.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/date.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/date.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/datehook.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/datehook.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/datetime.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/datetime.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/disk.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/disk.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/diskfilter.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/diskfilter.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/div_test.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/div_test.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/dm_nv.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/dm_nv.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/drivemap.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/drivemap.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/echo.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/echo.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/efiemu.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/efiemu.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/ehci.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/ehci.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/elf.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/elf.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/eval.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/eval.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/exfat.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/exfat.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/exfctest.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/exfctest.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/ext2.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/ext2.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/extcmd.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/extcmd.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/fat.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/fat.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/file.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/file.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/font.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/font.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/freedos.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/freedos.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/fs.lst:
--------------------------------------------------------------------------------
1 | affs
2 | afs
3 | bfs
4 | btrfs
5 | cbfs
6 | cpio
7 | cpio_be
8 | exfat
9 | ext2
10 | fat
11 | hfs
12 | hfsplus
13 | iso9660
14 | jfs
15 | minix
16 | minix2
17 | minix2_be
18 | minix3
19 | minix3_be
20 | minix_be
21 | newc
22 | nilfs2
23 | ntfs
24 | odc
25 | procfs
26 | reiserfs
27 | romfs
28 | sfs
29 | squash4
30 | tar
31 | udf
32 | ufs1
33 | ufs1_be
34 | ufs2
35 | xfs
36 | zfs
37 |
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/fshelp.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/fshelp.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/functional_test.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/functional_test.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_arcfour.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_arcfour.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_blowfish.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_blowfish.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_camellia.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_camellia.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_cast5.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_cast5.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_crc.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_crc.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_des.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_des.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_dsa.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_dsa.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_idea.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_idea.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_md4.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_md4.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_md5.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_md5.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_rfc2268.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_rfc2268.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_rijndael.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_rijndael.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_rmd160.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_rmd160.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_rsa.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_rsa.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_seed.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_seed.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_serpent.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_serpent.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_sha1.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_sha1.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_sha256.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_sha256.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_sha512.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_sha512.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_tiger.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_tiger.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_twofish.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_twofish.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gcry_whirlpool.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gcry_whirlpool.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gdb.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gdb.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/geli.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/geli.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gettext.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gettext.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gfxmenu.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gfxmenu.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gfxterm.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gfxterm.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gfxterm_background.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gfxterm_background.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gfxterm_menu.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gfxterm_menu.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gptsync.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gptsync.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/gzio.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/gzio.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/halt.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/halt.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/hashsum.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/hashsum.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/hdparm.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/hdparm.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/hello.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/hello.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/help.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/help.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/hexdump.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/hexdump.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/hfs.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/hfs.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/hfsplus.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/hfsplus.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/hfspluscomp.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/hfspluscomp.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/http.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/http.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/hwmatch.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/hwmatch.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/iorw.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/iorw.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/iso9660.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/iso9660.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/jfs.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/jfs.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/jpeg.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/jpeg.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/keylayouts.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/keylayouts.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/keystatus.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/keystatus.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/ldm.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/ldm.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/legacy_password_test.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/legacy_password_test.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/legacycfg.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/legacycfg.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/linux.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/linux.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/linux16.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/linux16.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/loadenv.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/loadenv.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/loopback.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/loopback.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/ls.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/ls.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/lsacpi.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/lsacpi.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/lsapm.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/lsapm.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/lsmmap.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/lsmmap.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/lspci.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/lspci.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/luks.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/luks.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/lvm.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/lvm.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/lzopio.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/lzopio.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/macbless.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/macbless.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/macho.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/macho.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/mda_text.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/mda_text.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/mdraid09.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/mdraid09.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/mdraid09_be.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/mdraid09_be.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/mdraid1x.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/mdraid1x.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/memdisk.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/memdisk.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/memrw.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/memrw.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/minicmd.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/minicmd.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/minix.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/minix.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/minix2.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/minix2.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/minix2_be.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/minix2_be.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/minix3.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/minix3.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/minix3_be.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/minix3_be.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/minix_be.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/minix_be.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/mmap.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/mmap.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/modinfo.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # User-controllable options
4 | grub_modinfo_target_cpu=i386
5 | grub_modinfo_platform=pc
6 | grub_disk_cache_stats=0
7 | grub_boot_time_stats=0
8 | grub_have_font_source=1
9 |
10 | # Autodetected config
11 | grub_have_asm_uscore=0
12 | grub_i8086_addr32="addr32"
13 | grub_i8086_data32="data32"
14 | grub_bss_start_symbol="__bss_start"
15 | grub_end_symbol="end"
16 |
17 | # Build environment
18 | grub_target_cc='gcc-4.7'
19 | grub_target_cc_version='gcc-4.7 (Ubuntu/Linaro 4.7.3-12ubuntu1) 4.7.3'
20 | grub_target_cflags=' -Os -Wall -W -Wshadow -Wpointer-arith -Wundef -Wchar-subscripts -Wcomment -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wfloat-equal -Wformat-extra-args -Wformat-security -Wformat-y2k -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-braces -Wmissing-format-attribute -Wmultichar -Wparentheses -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wswitch -Wtrigraphs -Wunknown-pragmas -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -Wwrite-strings -Wnested-externs -Wstrict-prototypes -g -Wredundant-decls -Wmissing-prototypes -Wmissing-declarations -Wextra -Wattributes -Wendif-labels -Winit-self -Wint-to-pointer-cast -Winvalid-pch -Wmissing-field-initializers -Wnonnull -Woverflow -Wvla -Wpointer-to-int-cast -Wstrict-aliasing -Wvariadic-macros -Wvolatile-register-var -Wpointer-sign -Wmissing-prototypes -Wmissing-declarations -Wformat=2 -march=i386 -m32 -mrtd -mregparm=3 -falign-jumps=1 -falign-loops=1 -falign-functions=1 -freg-struct-return -mno-mmx -mno-sse -mno-sse2 -mno-3dnow -fno-dwarf2-cfi-asm -fno-asynchronous-unwind-tables -Qn -fno-stack-protector -Wtrampolines -Werror'
21 | grub_target_cppflags='-Wno-unused-but-set-variable -Wall -W -I$(top_srcdir)/include -I$(top_builddir)/include -DGRUB_MACHINE_PCBIOS=1 -DGRUB_MACHINE=I386_PC -m32 -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/4.7/include'
22 | grub_target_ccasflags=' -g -m32'
23 | grub_target_ldflags=' -m32 -Wl,-melf_i386 -Wl,--build-id=none'
24 | grub_target_strip='strip'
25 | grub_target_nm='nm'
26 | grub_target_ranlib='ranlib'
27 | grub_target_objconf=''
28 | grub_target_obj2elf=''
29 |
30 | # Version
31 | grub_version="2.02~beta2"
32 | grub_package="grub"
33 | grub_package_string="GRUB 2.02~beta2-9"
34 | grub_package_version="2.02~beta2-9"
35 | grub_package_name="GRUB"
36 | grub_package_bugreport="bug-grub@gnu.org"
37 |
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/morse.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/morse.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/mpi.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/mpi.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/msdospart.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/msdospart.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/multiboot.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/multiboot.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/multiboot2.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/multiboot2.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/nativedisk.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/nativedisk.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/net.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/net.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/newc.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/newc.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/nilfs2.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/nilfs2.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/normal.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/normal.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/ntfs.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/ntfs.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/ntfscomp.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/ntfscomp.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/ntldr.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/ntldr.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/odc.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/odc.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/offsetio.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/offsetio.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/ohci.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/ohci.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/part_acorn.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/part_acorn.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/part_amiga.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/part_amiga.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/part_apple.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/part_apple.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/part_bsd.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/part_bsd.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/part_dfly.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/part_dfly.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/part_dvh.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/part_dvh.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/part_gpt.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/part_gpt.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/part_msdos.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/part_msdos.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/part_plan.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/part_plan.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/part_sun.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/part_sun.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/part_sunpc.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/part_sunpc.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/partmap.lst:
--------------------------------------------------------------------------------
1 | part_acorn
2 | part_amiga
3 | part_apple
4 | part_bsd
5 | part_dfly
6 | part_dvh
7 | part_gpt
8 | part_msdos
9 | part_plan
10 | part_sun
11 | part_sunpc
12 |
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/parttool.lst:
--------------------------------------------------------------------------------
1 | msdos: msdospart
2 |
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/parttool.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/parttool.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/password.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/password.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/password_pbkdf2.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/password_pbkdf2.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/pata.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/pata.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/pbkdf2.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/pbkdf2.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/pbkdf2_test.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/pbkdf2_test.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/pci.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/pci.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/pcidump.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/pcidump.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/plan9.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/plan9.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/play.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/play.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/png.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/png.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/priority_queue.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/priority_queue.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/probe.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/probe.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/procfs.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/procfs.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/progress.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/progress.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/pxe.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/pxe.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/pxechain.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/pxechain.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/raid5rec.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/raid5rec.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/raid6rec.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/raid6rec.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/read.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/read.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/reboot.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/reboot.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/regexp.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/regexp.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/reiserfs.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/reiserfs.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/relocator.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/relocator.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/romfs.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/romfs.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/scsi.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/scsi.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/search.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/search.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/search_fs_file.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/search_fs_file.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/search_fs_uuid.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/search_fs_uuid.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/search_label.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/search_label.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/sendkey.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/sendkey.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/serial.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/serial.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/setjmp.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/setjmp.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/setjmp_test.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/setjmp_test.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/setpci.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/setpci.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/sfs.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/sfs.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/signature_test.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/signature_test.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/sleep.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/sleep.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/sleep_test.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/sleep_test.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/spkmodem.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/spkmodem.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/squash4.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/squash4.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/syslinuxcfg.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/syslinuxcfg.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/tar.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/tar.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/terminal.lst:
--------------------------------------------------------------------------------
1 | iat_keyboard: at_keyboard
2 | iserial: serial
3 | iserial_*: serial
4 | oaudio: morse
5 | ocbmemc: cbmemc
6 | ogfxterm: gfxterm
7 | omda_text: mda_text
8 | oserial: serial
9 | oserial_*: serial
10 | ospkmodem: spkmodem
11 | ovga_text: vga_text
12 |
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/terminal.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/terminal.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/terminfo.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/terminfo.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/test.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/test.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/test_blockarg.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/test_blockarg.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/testload.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/testload.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/testspeed.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/testspeed.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/tftp.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/tftp.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/tga.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/tga.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/time.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/time.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/tr.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/tr.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/trig.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/trig.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/true.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/true.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/truecrypt.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/truecrypt.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/udf.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/udf.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/ufs1.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/ufs1.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/ufs1_be.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/ufs1_be.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/ufs2.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/ufs2.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/uhci.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/uhci.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/usb.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/usb.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/usb_keyboard.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/usb_keyboard.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/usbms.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/usbms.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/usbserial_common.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/usbserial_common.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/usbserial_ftdi.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/usbserial_ftdi.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/usbserial_pl2303.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/usbserial_pl2303.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/usbserial_usbdebug.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/usbserial_usbdebug.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/usbtest.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/usbtest.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/vbe.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/vbe.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/verify.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/verify.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/vga.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/vga.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/vga_text.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/vga_text.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/video.lst:
--------------------------------------------------------------------------------
1 | vbe
2 | vga
3 | video_bochs
4 | video_cirrus
5 |
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/video.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/video.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/video_bochs.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/video_bochs.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/video_cirrus.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/video_cirrus.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/video_colors.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/video_colors.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/video_fb.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/video_fb.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/videoinfo.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/videoinfo.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/videotest.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/videotest.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/videotest_checksum.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/videotest_checksum.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/xfs.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/xfs.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/xnu.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/xnu.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/xnu_uuid.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/xnu_uuid.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/xnu_uuid_test.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/xnu_uuid_test.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/xzio.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/xzio.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/zfs.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/zfs.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/zfscrypt.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/zfscrypt.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/i386-pc/zfsinfo.mod:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/i386-pc/zfsinfo.mod
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/locale/en_AU.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/locale/en_AU.mo
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/locale/en_CA.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/locale/en_CA.mo
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/locale/en_GB.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/locale/en_GB.mo
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/locale/es.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/locale/es.mo
--------------------------------------------------------------------------------
/Root/System/Boot/grub2/locale/zh_CN.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Boot/grub2/locale/zh_CN.mo
--------------------------------------------------------------------------------
/Root/System/Library/Fonts/Hiragino-kaku-gothic-pro-w3.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Library/Fonts/Hiragino-kaku-gothic-pro-w3.otf
--------------------------------------------------------------------------------
/Root/System/Library/Fonts/Maya.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Library/Fonts/Maya.ttf
--------------------------------------------------------------------------------
/Root/System/Library/Fonts/MesloLGSDZ-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Library/Fonts/MesloLGSDZ-Bold.ttf
--------------------------------------------------------------------------------
/Root/System/Library/Fonts/MesloLGSDZ-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Library/Fonts/MesloLGSDZ-BoldItalic.ttf
--------------------------------------------------------------------------------
/Root/System/Library/Fonts/MesloLGSDZ-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Library/Fonts/MesloLGSDZ-Italic.ttf
--------------------------------------------------------------------------------
/Root/System/Library/Fonts/MesloLGSDZ-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Library/Fonts/MesloLGSDZ-Regular.ttf
--------------------------------------------------------------------------------
/Root/System/Library/Fonts/System-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Library/Fonts/System-Bold.ttf
--------------------------------------------------------------------------------
/Root/System/Library/Fonts/System-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Library/Fonts/System-Light.ttf
--------------------------------------------------------------------------------
/Root/System/Library/Fonts/System-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Library/Fonts/System-Medium.ttf
--------------------------------------------------------------------------------
/Root/System/Library/Fonts/System-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Root/System/Library/Fonts/System-Regular.ttf
--------------------------------------------------------------------------------
/Tools/Garbage/File.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Library.File;
9 |
10 | import VFSManager;
11 |
12 |
13 | class File {
14 | FSNode m_node;
15 | long m_pos;
16 |
17 | this(FSNode node) {
18 | m_node = node;
19 | }
20 |
21 | @property ref long Position() { return m_pos; }
22 |
23 | long Read(byte[] buffer) {
24 | long len = m_node.Read(m_pos, buffer);
25 | m_pos += len;
26 |
27 | return len;
28 | }
29 |
30 | void Write(byte[] buffer) {
31 | long len = m_node.Write(m_pos, buffer);
32 | m_pos += len;
33 | }
34 | }
--------------------------------------------------------------------------------
/Tools/Garbage/FileSystem/DevFS.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module FileSystem.DevFS;
9 |
10 | import VFSManager;
11 |
12 |
13 | final class DevFS : IFileSystem {
14 | private DirectoryNode m_rootNode;
15 |
16 | @property Partition GetPartition() { return null; }
17 | @property bool IsWritable() { return true; }
18 | @property DirectoryNode RootNode() { return m_rootNode; }
19 |
20 | private this() { }
21 | bool Unmount() { return true; }
22 | bool LoadContent(DirectoryNode node) { return true; }
23 |
24 | FSNode Create(DirectoryNode parent, FileAttributes attributes) {
25 | switch (attributes.Type) {
26 | case FileType.Directory:
27 | return new DirectoryNode(parent, attributes);
28 |
29 | default:
30 | return null;
31 | }
32 | }
33 |
34 | bool Remove(FSNode node) {
35 | switch (node.Attributes.Type) {
36 | case FileType.Directory:
37 | if (!(cast(DirectoryNode)node).Childrens.Count) {
38 | delete node;
39 | return true;
40 | }
41 | break;
42 |
43 | default:
44 | delete node;
45 | return true;
46 | }
47 |
48 | return false;
49 | }
50 |
51 | static DevFS Mount(DirectoryNode mountpoint) {
52 | if (mountpoint is null || !mountpoint.IsMountpointable)
53 | return null;
54 |
55 | DevFS ret = new DevFS();
56 | ret.m_rootNode = new DirectoryNode(null, FileAttributes("/"));
57 | ret.m_rootNode.FileSystem = ret;
58 |
59 | if (!mountpoint.Mount(ret.m_rootNode)) {
60 | delete ret;
61 | return null;
62 | }
63 |
64 | return ret;
65 | }
66 |
67 | bool AddDevice(FSNode dev) {
68 | return false;
69 | }
70 | }
--------------------------------------------------------------------------------
/Tools/Garbage/FileSystem/NullDev.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module FileSystem.NullDev;
9 |
10 | import VFSManager;
11 |
12 |
13 | final class NullDev : CharNode {
14 | this(DirectoryNode parent, string name) {
15 | super(parent, FileAttributes(name));
16 | }
17 |
18 | override ulong Read(long offset, byte[] data) {
19 | return 0;
20 | }
21 |
22 | override ulong Write(long offset, byte[] data) {
23 | return 0;
24 | }
25 | }
--------------------------------------------------------------------------------
/Tools/Garbage/FileSystem/RandomDev.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module FileSystem.RandomDev;
9 |
10 | import VFSManager;
11 | import Architecture;
12 |
13 |
14 | final class RandomDev : CharNode {
15 | private __gshared ulong m_number;
16 |
17 | this(DirectoryNode parent, string name) {
18 | super(parent, FileAttributes(name));
19 |
20 | m_attributes.Length = 1024;
21 | }
22 |
23 | override ulong Read(long offset, byte[] data) {
24 | foreach (ref x; data) {
25 | m_number = (Rand1() - Rand2() + Rand3()) * Time.Now;
26 | x = cast(byte)(m_number & 0xFF);
27 | }
28 |
29 | return data.length;
30 | }
31 |
32 | override ulong Write(long offset, byte[] data) {
33 | return 0;
34 | }
35 |
36 | private ulong Rand1() { return (m_number * 125) % 2796203; }
37 | private ulong Rand2() { return (m_number * 32719 + 3) % 32749; }
38 | private ulong Rand3() { return (((m_number * 214013L + 2531011L) >> 16) & 32767); }
39 | }
--------------------------------------------------------------------------------
/Tools/Garbage/FileSystem/ZeroDev.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module FileSystem.ZeroDev;
9 |
10 | import VFSManager;
11 |
12 |
13 | final class ZeroDev : CharNode {
14 | this(DirectoryNode parent, string name) {
15 | super(parent, FileAttributes(name));
16 | }
17 |
18 | override ulong Read(long offset, byte[] data) {
19 | if (data.length < 1)
20 | return 0;
21 |
22 | data[0] = 1;
23 | return 1;
24 | }
25 |
26 | override ulong Write(long offset, byte[] data) {
27 | return 0;
28 | }
29 | }
--------------------------------------------------------------------------------
/Tools/Garbage/FileSystem/package.d:
--------------------------------------------------------------------------------
1 | module FileSystem;
2 |
3 | public import FileSystem.DevFS;
4 | public import FileSystem.TmpFS;
5 | public import FileSystem.NullDev;
6 | public import FileSystem.ZeroDev;
7 | public import FileSystem.RandomDev;
--------------------------------------------------------------------------------
/Tools/Garbage/LibraryLoader.dx:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Library.LibraryLoader;
9 |
10 | import Library;
11 |
12 |
13 | abstract class LibraryLoader {
14 | private __gshared LinkedList!LibraryLoader _libraries;
15 |
16 | private string _name;
17 | protected void* _base;
18 |
19 | protected bool CheckMagic();
20 | protected void* Relocate(string[] args);
21 | protected bool GetSymbol(string name, ref void* ret, ref long size);
22 |
23 | protected this(/* atring searchDir, string[] args*/) {
24 | _libraries.Add(this);
25 | }
26 |
27 | protected ~this() {
28 | _libraries.Remove(this);
29 | }
30 |
31 |
32 |
33 |
34 | static LibraryLoader Load(string name, string searchDir, string[] args) {
35 |
36 | //relocate...
37 | //if ok _libra..Add...
38 | return null;
39 | }
40 |
41 | static LibraryLoader Find(string name) {
42 | foreach (x; _libraries) {
43 | if (x.Value._name == name)
44 | return x.Value;
45 | }
46 |
47 | return null;
48 | }
49 |
50 | static bool GetSymbol(string name, ref void* value, ref long size, void* ignoreBase) {
51 | //Local exports...
52 |
53 | foreach(x; _libraries) {
54 | if (x.Value._base == ignoreBase)
55 | continue;
56 |
57 | if (x.Value.GetSymbol(name, value, size))
58 | return true;
59 | }
60 |
61 | return false;
62 | }
63 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Linker/package.d:
--------------------------------------------------------------------------------
1 | module Linker;
2 |
3 | public import Linker.ElfLoader;
4 | public import Linker.BinaryLoader;
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Display/BochsGA/BochsGA.dproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | AnyCPU
6 | {856021B5-4537-44A6-A830-814FE5B39E8C}
7 | .
8 | DMD2
9 | true
10 | true
11 | true
12 |
13 |
14 | true
15 | bin\Debug
16 | true
17 | Executable
18 | BochsGA
19 | false
20 | false
21 | obj\Debug
22 | 0
23 |
24 |
25 | bin\Release
26 | true
27 | Executable
28 | BochsGA
29 | false
30 | false
31 | obj\Release
32 | 0
33 |
34 |
35 | true
36 | bin\Unittest
37 | true
38 | Executable
39 | BochsGA
40 | true
41 | false
42 | obj\Unittest
43 | 0
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Display/BochsGA/DriverInfo.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.Display.BochsGA.DriverInfo;
9 |
10 | import ObjectManager;
11 | import Modules.Display.BochsGA.Main;
12 |
13 |
14 | extern(C) const ModuleDef _DriverInfo_Display_BochsGA = {
15 | Magic: MODULE_MAGIC,
16 | Type: DeviceType.Video,
17 | Architecture: ModuleArch.x86_64,
18 | Flags: 0x00,
19 | Version: 0x01,
20 | Name: "Bochs Graphic Adapter",
21 | Identifier: "com.modules.Display.BochsGA",
22 | Initialize: &BochsGA.Initialize,
23 | Finalize: &BochsGA.Finalize
24 | };
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Display/BochsGA/Main.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.Display.BochsGA.Main;
9 |
10 | import Core;
11 | import Architecture;
12 | import ObjectManager;
13 | import MemoryManager;
14 |
15 |
16 | class BochsGA {
17 | enum BochsDispi {
18 | IndexID,
19 | IndexXRes,
20 | IndexYRes,
21 | IndexBpp,
22 | IndexEnable,
23 | IndexBank,
24 | IndexVirtWidth,
25 | IndexVirtHeight,
26 | IndexXOffset,
27 | IndexYOffset,
28 |
29 | BankAddress = 0xA0000,
30 | LFBPhysicalAddress = 0xE0000000,
31 | IOPortIndex = 0x01CE,
32 | IOPortData = 0x01CF,
33 | Disabled = 0x00,
34 | Enabled = 0x01,
35 | LFBEnabled = 0x40,
36 | NoClearMemory = 0x80
37 |
38 | }
39 |
40 | static ModuleResult Initialize(string[] args) {
41 | Log("test 42 pica: %x", ReadRegister(BochsDispi.IndexID));
42 |
43 | VirtualMemory.MapRegion(cast(p_addr)(BochsDispi.LFBPhysicalAddress), 1);
44 |
45 | //mem[0] = 0;
46 |
47 | // Log("len: %x", mem.length);
48 |
49 |
50 | /*foreach (ref x; mem) {
51 | x = 0;
52 | }*/
53 |
54 | return ModuleResult.Successful;
55 | }
56 |
57 | static ModuleResult Finalize() {
58 |
59 | return ModuleResult.Successful;
60 | }
61 |
62 |
63 | static void WriteRegister(ushort register, ushort value) {
64 | Port.Write!ushort(BochsDispi.IOPortIndex, register);
65 | Port.Write!ushort(BochsDispi.IOPortData, value);
66 | }
67 |
68 | static ushort ReadRegister(ushort register) {
69 | Port.Write!ushort(BochsDispi.IOPortIndex, register);
70 | return Port.Read!ushort(BochsDispi.IOPortData);
71 | }
72 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Display/BochsGA/Makefile:
--------------------------------------------------------------------------------
1 | NAME = BochsGA
2 | OBJ += $(addsuffix .o,$(shell find * -name "*.d"))
3 |
4 | -include ../Makefile.tpl
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Display/Makefile.tpl:
--------------------------------------------------------------------------------
1 | CATEGORY = Display
2 |
3 | -include ../../Makefile.tpl
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/FileSystem/Ext2/DriverInfo.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.FileSystem.Ext2.DriverInfo;
9 |
10 | import ObjectManager;
11 | import Modules.FileSystem.Ext2;
12 |
13 |
14 | extern(C) const ModuleDef _DriverInfo_FileSystem_Ext2 = {
15 | Magic: MODULE_MAGIC,
16 | Type: DeviceType.FileSystem,
17 | Architecture: ModuleArch.x86_64,
18 | Flags: 0x00,
19 | Version: 0x01,
20 | Name: "Ext2 FileSystem Module",
21 | Identifier: "com.modules.FileSystem.Ext2",
22 | Initialize: &Ext2.Initialize,
23 | Finalize: &Ext2.Finalize
24 | };
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/FileSystem/Ext2/Ext2.mdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Default
5 | AnyCPU
6 | GenericProject
7 | {C3B6FE2A-E046-477B-9DE5-BFB862FE3298}
8 |
9 |
10 | .
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/FileSystem/Ext2/Ext2BlockNode.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.FileSystem.Ext2.Ext2BlockNode;
9 |
10 | import VFSManager;
11 | import Modules.FileSystem.Ext2;
12 |
13 |
14 | final class Ext2BlockNode : BlockNode {
15 | private DiskNode m_node;
16 | private bool m_loadedAttribs;
17 |
18 | @property override long Blocks() { return -1; }
19 | @property override long BlockSize() { return -1; }
20 | @property auto Node() { return m_node; }
21 |
22 | this(int inode, DirectoryNode parent, FileAttributes attributes) {
23 | m_node = DiskNode(parent, inode);
24 | super(parent, attributes);
25 | }
26 |
27 | @property override FileAttributes Attributes() {
28 | /* if (!m_loadedAttribs && m_parent !is null && m_parent.FileSystem !is null) {
29 | auto attribs = (cast(Ext2FileSystem)m_parent.FileSystem).GetAttributes(Node.Inode);
30 | attribs.Name = m_attributes.Name;
31 | attribs.Type = m_attributes.Type;
32 |
33 | m_attributes = attribs;
34 | m_loadedAttribs = true;
35 | }*/
36 |
37 | return m_attributes;
38 | }
39 |
40 | @property override void Attributes(FileAttributes value) {
41 | m_attributes = value;
42 |
43 | if (m_parent !is null && m_parent.FileSystem !is null)
44 | (cast(Ext2FileSystem)m_parent.FileSystem).SetAttributes(Node, m_attributes);
45 | }
46 |
47 | override ulong Read(long offset, byte[] data) {
48 | if (m_parent is null || m_parent.FileSystem is null)
49 | return 0;
50 |
51 | return (cast(Ext2FileSystem)m_parent.FileSystem).Read(Node.Node, offset, data);
52 | }
53 |
54 | override ulong Write(long offset, byte[] data) {
55 | if (m_parent is null || m_parent.FileSystem is null)
56 | return 0;
57 |
58 | return (cast(Ext2FileSystem)m_parent.FileSystem).Write(Node.Node, offset, data);
59 | }
60 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/FileSystem/Ext2/Ext2CharNode.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.FileSystem.Ext2.Ext2CharNode;
9 |
10 | import VFSManager;
11 | import Modules.FileSystem.Ext2;
12 |
13 |
14 | final class Ext2CharNode : CharNode {
15 | private DiskNode m_node;
16 | private bool m_loadedAttribs;
17 |
18 | @property auto Node() { return m_node; }
19 |
20 | this(int inode, DirectoryNode parent, FileAttributes attributes) {
21 | m_node = DiskNode(parent, inode);
22 | super(parent, attributes);
23 | }
24 |
25 | @property override FileAttributes Attributes() {
26 | /* if (!m_loadedAttribs && m_parent !is null && m_parent.FileSystem !is null) {
27 | auto attribs = (cast(Ext2FileSystem)m_parent.FileSystem).GetAttributes(Node.Inode);
28 | attribs.Name = m_attributes.Name;
29 | attribs.Type = m_attributes.Type;
30 |
31 | m_attributes = attribs;
32 | m_loadedAttribs = true;
33 | }*/
34 |
35 | return m_attributes;
36 | }
37 |
38 | @property override void Attributes(FileAttributes value) {
39 | m_attributes = value;
40 |
41 | if (m_parent !is null && m_parent.FileSystem !is null)
42 | (cast(Ext2FileSystem)m_parent.FileSystem).SetAttributes(Node, m_attributes);
43 | }
44 |
45 | override ulong Read(long offset, byte[] data) {
46 | if (m_parent is null || m_parent.FileSystem is null)
47 | return 0;
48 |
49 | return (cast(Ext2FileSystem)m_parent.FileSystem).Read(Node.Node, offset, data);
50 | }
51 |
52 | override ulong Write(long offset, byte[] data) {
53 | if (m_parent is null || m_parent.FileSystem is null)
54 | return 0;
55 |
56 | return (cast(Ext2FileSystem)m_parent.FileSystem).Write(Node.Node, offset, data);
57 | }
58 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/FileSystem/Ext2/Ext2DirectoryNode.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.FileSystem.Ext2.Ext2DirectoryNode;
9 |
10 | import VFSManager;
11 | import Modules.FileSystem.Ext2;
12 |
13 |
14 | final class Ext2DirectoryNode : DirectoryNode {
15 | package DiskNode m_node;
16 | private bool m_loadedAttribs;
17 |
18 | @property auto Node() { return m_node; }
19 |
20 | this(int inode, DirectoryNode parent, FileAttributes attributes) {
21 | m_node = DiskNode(parent, inode);
22 | super(parent, attributes);
23 | }
24 |
25 | @property override FileAttributes Attributes() {
26 | /* if (!m_loadedAttribs && FileSystem !is null) {
27 | auto attribs = (cast(Ext2FileSystem)FileSystem).GetAttributes(Node.Inode);
28 | attribs.Name = m_attributes.Name;
29 | attribs.Type = m_attributes.Type;
30 |
31 | m_attributes = attribs;
32 | m_loadedAttribs = true;
33 | }*/
34 |
35 | return m_attributes;
36 | }
37 |
38 | @property override void Attributes(FileAttributes value) {
39 | m_attributes = value;
40 |
41 | if (m_parent !is null && m_parent.FileSystem !is null)
42 | (cast(Ext2FileSystem)m_parent.FileSystem).SetAttributes(Node, m_attributes);
43 | }
44 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/FileSystem/Ext2/Ext2FileNode.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.FileSystem.Ext2.Ext2FileNode;
9 |
10 | import VFSManager;
11 | import Modules.FileSystem.Ext2;
12 |
13 |
14 | final class Ext2FileNode : FileNode {
15 | private DiskNode m_node;
16 | private bool m_loadedAttribs;
17 |
18 | @property auto Node() { return m_node; }
19 |
20 | this(int inode, DirectoryNode parent, FileAttributes attributes) {
21 | m_node = DiskNode(parent, inode);
22 | super(parent, attributes);
23 | }
24 |
25 | @property override FileAttributes Attributes() {
26 | /* if (!m_loadedAttribs && m_parent !is null && m_parent.FileSystem !is null) {
27 | auto attribs = (cast(Ext2FileSystem)m_parent.FileSystem).GetAttributes(Node.Inode);
28 | attribs.Name = m_attributes.Name;
29 | attribs.Type = m_attributes.Type;
30 |
31 | m_attributes = attribs;
32 | m_loadedAttribs = true;
33 | }*/
34 |
35 | return m_attributes;
36 | }
37 |
38 | @property override void Attributes(FileAttributes value) {
39 | m_attributes = value;
40 |
41 | if (m_parent !is null && m_parent.FileSystem !is null)
42 | (cast(Ext2FileSystem)m_parent.FileSystem).SetAttributes(Node, m_attributes);
43 | }
44 |
45 | override ulong Read(long offset, byte[] data) {
46 | if (m_parent is null || m_parent.FileSystem is null)
47 | return 0;
48 |
49 | return (cast(Ext2FileSystem)m_parent.FileSystem).Read(Node.Node, offset, data);
50 | }
51 |
52 | override ulong Write(long offset, byte[] data) {
53 | if (m_parent is null || m_parent.FileSystem is null)
54 | return 0;
55 |
56 | return (cast(Ext2FileSystem)m_parent.FileSystem).Write(Node.Node, offset, data);
57 | }
58 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/FileSystem/Ext2/Ext2PipeNode.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.FileSystem.Ext2.Ext2PipeNode;
9 |
10 | import VFSManager;
11 | import Modules.FileSystem.Ext2;
12 |
13 |
14 | final class Ext2PipeNode : PipeNode {
15 | private DiskNode m_node;
16 | private bool m_loadedAttribs;
17 |
18 | @property auto Node() { return m_node; }
19 |
20 | this(int inode, DirectoryNode parent, FileAttributes attributes) {
21 | m_node = DiskNode(parent, inode);
22 | super(parent, attributes);
23 | }
24 |
25 | @property override FileAttributes Attributes() {
26 | /* if (!m_loadedAttribs && m_parent !is null && m_parent.FileSystem !is null) {
27 | auto attribs = (cast(Ext2FileSystem)m_parent.FileSystem).GetAttributes(Node.Inode);
28 | attribs.Name = m_attributes.Name;
29 | attribs.Type = m_attributes.Type;
30 |
31 | m_attributes = attribs;
32 | m_loadedAttribs = true;
33 | }*/
34 |
35 | return m_attributes;
36 | }
37 |
38 | @property override void Attributes(FileAttributes value) {
39 | m_attributes = value;
40 |
41 | if (m_parent !is null && m_parent.FileSystem !is null)
42 | (cast(Ext2FileSystem)m_parent.FileSystem).SetAttributes(Node, m_attributes);
43 | }
44 |
45 | override ulong Read(long offset, byte[] data) {
46 | if (m_parent is null || m_parent.FileSystem is null)
47 | return 0;
48 |
49 | return (cast(Ext2FileSystem)m_parent.FileSystem).Read(Node.Node, offset, data);
50 | }
51 |
52 | override ulong Write(long offset, byte[] data) {
53 | if (m_parent is null || m_parent.FileSystem is null)
54 | return 0;
55 |
56 | return (cast(Ext2FileSystem)m_parent.FileSystem).Write(Node.Node, offset, data);
57 | }
58 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/FileSystem/Ext2/Ext2SocketNode.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.FileSystem.Ext2.Ext2SocketNode;
9 |
10 | import VFSManager;
11 | import Modules.FileSystem.Ext2;
12 |
13 |
14 | final class Ext2SocketNode : SocketNode {
15 | private DiskNode m_node;
16 | private bool m_loadedAttribs;
17 |
18 | @property auto Node() { return m_node; }
19 |
20 | this(int inode, DirectoryNode parent, FileAttributes attributes) {
21 | m_node = DiskNode(parent, inode);
22 | super(parent, attributes);
23 | }
24 |
25 | @property override FileAttributes Attributes() {
26 | /* if (!m_loadedAttribs && m_parent !is null && m_parent.FileSystem !is null) {
27 | auto attribs = (cast(Ext2FileSystem)m_parent.FileSystem).GetAttributes(Node.Inode);
28 | attribs.Name = m_attributes.Name;
29 | attribs.Type = m_attributes.Type;
30 |
31 | m_attributes = attribs;
32 | m_loadedAttribs = true;
33 | }*/
34 |
35 | return m_attributes;
36 | }
37 |
38 | @property override void Attributes(FileAttributes value) {
39 | m_attributes = value;
40 |
41 | if (m_parent !is null && m_parent.FileSystem !is null)
42 | (cast(Ext2FileSystem)m_parent.FileSystem).SetAttributes(Node, m_attributes);
43 | }
44 |
45 | override ulong Read(long offset, byte[] data) {
46 | if (m_parent is null || m_parent.FileSystem is null)
47 | return 0;
48 |
49 | return (cast(Ext2FileSystem)m_parent.FileSystem).Read(Node.Node, offset, data);
50 | }
51 |
52 | override ulong Write(long offset, byte[] data) {
53 | if (m_parent is null || m_parent.FileSystem is null)
54 | return 0;
55 |
56 | return (cast(Ext2FileSystem)m_parent.FileSystem).Write(Node.Node, offset, data);
57 | }
58 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/FileSystem/Ext2/Ext2SymLinkNode.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.FileSystem.Ext2.Ext2SymLinkNode;
9 |
10 | import VFSManager;
11 | import Modules.FileSystem.Ext2;
12 |
13 |
14 | final class Ext2SymLinkNode : SymLinkNode {
15 | private DiskNode m_node;
16 | private bool m_loadedAttribs;
17 |
18 | @property auto Node() { return m_node; }
19 |
20 | this(int inode, DirectoryNode parent, FileAttributes attributes) {
21 | m_node = DiskNode(parent, inode);
22 | super(parent, attributes);
23 | }
24 |
25 | @property override FileAttributes Attributes() {
26 | /* if (!m_loadedAttribs && m_parent !is null && m_parent.FileSystem !is null) {
27 | auto attribs = (cast(Ext2FileSystem)m_parent.FileSystem).GetAttributes(Node.Inode);
28 | attribs.Name = m_attributes.Name;
29 | attribs.Type = m_attributes.Type;
30 |
31 | m_attributes = attribs;
32 | m_loadedAttribs = true;
33 | }*/
34 |
35 | return m_attributes;
36 | }
37 |
38 | @property override void Attributes(FileAttributes value) {
39 | m_attributes = value;
40 |
41 | if (m_parent !is null && m_parent.FileSystem !is null)
42 | (cast(Ext2FileSystem)m_parent.FileSystem).SetAttributes(Node, m_attributes);
43 | }
44 |
45 | override ulong Read(long offset, byte[] data) {
46 | if (m_parent is null || m_parent.FileSystem is null)
47 | return 0;
48 |
49 | return (cast(Ext2FileSystem)m_parent.FileSystem).Read(Node.Node, offset, data);
50 | }
51 |
52 | override ulong Write(long offset, byte[] data) {
53 | if (m_parent is null || m_parent.FileSystem is null)
54 | return 0;
55 |
56 | return (cast(Ext2FileSystem)m_parent.FileSystem).Write(Node.Node, offset, data);
57 | }
58 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/FileSystem/Ext2/Main.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.FileSystem.Ext2.Main;
9 |
10 | import Core;
11 | import VFSManager;
12 | import ObjectManager;
13 | import Modules.FileSystem.Ext2;
14 |
15 |
16 | class Ext2 {
17 | private static const FSDriver info = {
18 | Name: "ext2",
19 | Detect: &Ext2FileSystem.Detect,
20 | Mount: &Ext2FileSystem.Mount,
21 | Create: &Ext2FileSystem.Create
22 | };
23 |
24 | static ModuleResult Initialize(string[] args) {
25 | VFS.AddDriver(info);
26 |
27 | return ModuleResult.Successful;
28 | }
29 |
30 | static ModuleResult Finalize() {
31 | VFS.RemoveDriver("ext2");
32 |
33 | return ModuleResult.Successful;
34 | }
35 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/FileSystem/Ext2/Makefile:
--------------------------------------------------------------------------------
1 | NAME = Ext2
2 | OBJ += $(addsuffix .o,$(shell find * -name "*.d"))
3 |
4 | -include ../Makefile.tpl
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/FileSystem/Ext2/package.d:
--------------------------------------------------------------------------------
1 | module Modules.FileSystem.Ext2;
2 |
3 | public import Modules.FileSystem.Ext2.Main;
4 | public import Modules.FileSystem.Ext2.DriverInfo;
5 | public import Modules.FileSystem.Ext2.Ext2PipeNode;
6 | public import Modules.FileSystem.Ext2.Ext2FileNode;
7 | public import Modules.FileSystem.Ext2.Ext2CharNode;
8 | public import Modules.FileSystem.Ext2.Ext2BlockNode;
9 | public import Modules.FileSystem.Ext2.Ext2SocketNode;
10 | public import Modules.FileSystem.Ext2.Ext2FileSystem;
11 | public import Modules.FileSystem.Ext2.Ext2SymLinkNode;
12 | public import Modules.FileSystem.Ext2.Ext2DirectoryNode;
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/FileSystem/Makefile.tpl:
--------------------------------------------------------------------------------
1 | CATEGORY = FileSystem
2 |
3 | -include ../../Makefile.tpl
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/Keyboard/DriverInfo.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.Input.Keyboard.DriverInfo;
9 |
10 | import ObjectManager;
11 | import Modules.Input.Keyboard;
12 |
13 |
14 | extern(C) const ModuleDef _DriverInfo_Input_Keyboard = {
15 | Magic: MODULE_MAGIC,
16 | Type: DeviceType.Input,
17 | Architecture: ModuleArch.x86_64,
18 | Flags: 0x00,
19 | Version: 0x01,
20 | Name: "Keyboard Input Module",
21 | Identifier: "com.modules.Input.Keyboard"
22 | };
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/Keyboard/Keyboard.mdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Default
5 | AnyCPU
6 | GenericProject
7 | {7DF2A99B-0DD7-4D6D-9EBB-14FA67DC4716}
8 |
9 |
10 | .
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/Keyboard/Main.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.Input.Keyboard.Main;
9 |
10 | import Core;
11 | import Diagnostics;
12 | import ObjectManager;
13 |
14 | import Modules.Input.Keyboard;
15 |
16 |
17 | class Keyboard : Resource {
18 | this(string identifier, long ver, int maxSym) {
19 | static const CallTable[] callTable = [
20 |
21 | ];
22 |
23 | super(DeviceType.Input, identifier, ver, callTable);
24 | Debugger.Log(LogLevel.Info, "Keyboard", "%s (version: %d) was registered", identifier, ver);
25 | }
26 |
27 | void HandleEvent(int hidCode) {
28 | Log("Hit %d", hidCode);
29 | }
30 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/Keyboard/Makefile:
--------------------------------------------------------------------------------
1 | NAME = Keyboard
2 | OBJ += $(addsuffix .o,$(shell find * -name "*.d"))
3 |
4 | -include ../Makefile.tpl
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/Keyboard/package.d:
--------------------------------------------------------------------------------
1 | module Modules.Input.Keyboard;
2 |
3 | public import Modules.Input.Keyboard.Main;
4 | public import Modules.Input.Keyboard.Keysyms;
5 | public import Modules.Input.Keyboard.DriverInfo;
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/Makefile.tpl:
--------------------------------------------------------------------------------
1 | CATEGORY = Input
2 |
3 | -include ../../Makefile.tpl
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/Mouse/DriverInfo.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.Input.Mouse.DriverInfo;
9 |
10 | import ObjectManager;
11 | import Modules.Input.Mouse.Main;
12 |
13 |
14 | extern(C) const ModuleDef _DriverInfo_Input_Mouse = {
15 | Magic: MODULE_MAGIC,
16 | Type: DeviceType.Input,
17 | Architecture: ModuleArch.x86_64,
18 | Flags: 0x00,
19 | Version: 0x01,
20 | Name: "Mouse Input Module",
21 | Identifier: "com.modules.Input.Mouse"
22 | };
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/Mouse/Main.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.Input.Mouse.Main;
9 |
10 | import ObjectManager;
11 |
12 | import Modules.Input.Mouse;
13 |
14 |
15 | static class Mouse : Resource {
16 | this(string identifier, int ver, int numButtons, int numAxis) {
17 | static const CallTable[] callTable = [
18 |
19 | ];
20 |
21 | super(DeviceType.Input, identifier, ver, callTable);
22 | }
23 |
24 | static void HandleEvent(int buttonState, int[] axisDeltas) {
25 | import Core;
26 | Log("mouse moved! buttons = %d, x = %d, y = %d", buttonState, axisDeltas[0], axisDeltas[1]);
27 | }
28 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/Mouse/Makefile:
--------------------------------------------------------------------------------
1 | NAME = Mouse
2 | OBJ += $(addsuffix .o,$(shell find * -name "*.d"))
3 |
4 | -include ../Makefile.tpl
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/Mouse/Mouse.mdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Default
5 | AnyCPU
6 | GenericProject
7 | {E3BCBACF-E623-4E61-96F6-C3B0306B5373}
8 |
9 |
10 | .
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/Mouse/package.d:
--------------------------------------------------------------------------------
1 | module Modules.Input.Mouse;
2 |
3 | public import Modules.Input.Mouse.Main;
4 | public import Modules.Input.Mouse.DriverInfo;
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/PS2KeyboardMouse/DriverInfo.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.Input.PS2KeyboardMouse.DriverInfo;
9 |
10 | import ObjectManager;
11 | import Modules.Input.PS2KeyboardMouse.Main;
12 | import Modules.Input.PS2KeyboardMouse.PS2Mouse;
13 | import Modules.Input.PS2KeyboardMouse.PS2Keyboard;
14 |
15 |
16 | extern(C) const ModuleDef _DriverInfo_Input_PS2KeyboardMouse = {
17 | Magic: MODULE_MAGIC,
18 | Type: DeviceType.Input,
19 | Architecture: ModuleArch.x86_64,
20 | Flags: 0x00,
21 | Version: 0x01,
22 | Name: "PS2 Input Module",
23 | Identifier: "com.modules.Input.PS2KeyboardMouse",
24 | Initialize: &PS2KeyboardMouse.Initialize
25 | };
26 |
27 | extern(C) const ModuleDef _DriverInfo_Input_PS2Keyboard = {
28 | Magic: MODULE_MAGIC,
29 | Type: DeviceType.Input,
30 | Architecture: ModuleArch.x86_64,
31 | Flags: 0x00,
32 | Version: 0x01,
33 | Name: "PS2 Keyboard Input Module",
34 | Identifier: "com.modules.Input.PS2Keyboard",
35 | Initialize: &PS2Keyboard.Initialize,
36 | Finalize: &PS2Keyboard.Finalize,
37 | Dependencies: [
38 | {"com.modules.Input.PS2KeyboardMouse", []},
39 | {"com.modules.Input.Keyboard", []}
40 | ]
41 | };
42 |
43 | extern(C) const ModuleDef _DriverInfo_Input_PS2Mouse = {
44 | Magic: MODULE_MAGIC,
45 | Type: DeviceType.Input,
46 | Architecture: ModuleArch.x86_64,
47 | Flags: 0x00,
48 | Version: 0x01,
49 | Name: "PS2 Mouse Input Module",
50 | Identifier: "com.modules.Input.PS2Mouse",
51 | Initialize: &PS2Mouse.Initialize,
52 | Finalize: &PS2Mouse.Finalize,
53 | Dependencies: [
54 | {"com.modules.Input.PS2KeyboardMouse", []},
55 | {"com.modules.Input.Mouse", []}
56 | ]
57 | };
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/PS2KeyboardMouse/KBC8042.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.Input.PS2KeyboardMouse.KBC8042;
9 |
10 | import Architecture;
11 | import ObjectManager;
12 | import Modules.Input.PS2KeyboardMouse.PS2Mouse;
13 | import Modules.Input.PS2KeyboardMouse.PS2Keyboard;
14 |
15 |
16 | static abstract class KBC8042 {
17 | package static void Initialize() {
18 | DeviceManager.RequestIRQ(&KeyboardHandler, 1);
19 | DeviceManager.RequestIRQ(&MouseHandler, 12);
20 |
21 | byte tmp = Port.Read(0x61);
22 | Port.Write(0x61, tmp | 0x80);
23 | Port.Write(0x61, tmp & 0x7F);
24 | Port.Read(0x60);
25 | }
26 |
27 | package static void SetLED(byte state) {
28 | while (Port.Read(0x64) & 2) { }
29 | Port.Write(0x60, 0xED);
30 |
31 | while (Port.Read(0x64) & 2) { }
32 | Port.Write(0x60, state);
33 | }
34 |
35 | package static void EnableMouse() {
36 | SendDataAlt(cast(byte)0xA8);
37 |
38 | SendDataAlt(0x20);
39 | byte status = ReadData();
40 | status &= ~0x20;
41 | status |= 0x02;
42 | SendDataAlt(0x60);
43 | SendData(status);
44 |
45 | /* Enable packets */
46 | SendMouseCommand(cast(byte)0xF4);
47 | }
48 |
49 | private static void SendDataAlt(byte data) {
50 | int timeout = 100000;
51 | while (timeout-- && Port.Read(0x64) & 2) { }
52 | Port.Write(0x64, data);
53 | }
54 |
55 | private static void SendData(byte data) {
56 | int timeout = 100000;
57 | while (timeout-- && Port.Read(0x64) & 2) { }
58 | Port.Write(0x60, data);
59 | }
60 |
61 | private static byte ReadData() {
62 | int timeout = 100000;
63 | while (timeout-- && !(Port.Read(0x64) & 1)) { }
64 | return Port.Read(0x60);
65 | }
66 |
67 | private static void SendMouseCommand(byte cmd) {
68 | SendDataAlt(cast(byte)0xD4);
69 | SendData(cmd);
70 | }
71 |
72 | private static void KeyboardHandler(ref InterruptStack stack) {
73 | PS2Keyboard.Handler(Port.Read(0x60));
74 | }
75 |
76 | private static void MouseHandler(ref InterruptStack stack) {
77 | PS2Mouse.Handler(Port.Read(0x60));
78 | }
79 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/PS2KeyboardMouse/Main.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.Input.PS2KeyboardMouse.Main;
9 |
10 | import ObjectManager;
11 | import Modules.Input.PS2KeyboardMouse.KBC8042;
12 | import Modules.Input.PS2KeyboardMouse.PS2Mouse;
13 |
14 |
15 | static abstract class PS2KeyboardMouse {
16 | static ModuleResult Initialize(string[] args) {
17 | KBC8042.Initialize();
18 | PS2Mouse.EnableMouse = &KBC8042.EnableMouse;
19 |
20 | return ModuleResult.Successful;
21 | }
22 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/PS2KeyboardMouse/Makefile:
--------------------------------------------------------------------------------
1 | NAME = PS2KeyboardMouse
2 | OBJ += $(addsuffix .o,$(shell find * -name "*.d"))
3 |
4 | -include ../Makefile.tpl
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/PS2KeyboardMouse/PS2Keyboard.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.Input.PS2KeyboardMouse.PS2Keyboard;
9 |
10 | import Diagnostics;
11 | import ObjectManager;
12 |
13 | import Modules.Input.Keyboard;
14 | import Modules.Input.PS2KeyboardMouse;
15 |
16 |
17 | static class PS2Keyboard {
18 | private __gshared bool m_up;
19 | private __gshared int m_layer;
20 | private __gshared Keyboard m_kb;
21 |
22 | static ModuleResult Initialize(string[] args) {
23 | m_kb = new Keyboard("PS2Keyboard", _DriverInfo_Input_PS2Keyboard.Version, Keysyms.KEYSYM_RIGHTGUI);
24 |
25 | return ModuleResult.Successful;
26 | }
27 |
28 | static ModuleResult Finalize() {
29 | delete m_kb;
30 |
31 | return ModuleResult.Successful;
32 | }
33 |
34 | package static void Handler(byte code) {
35 | if (code == 0xFA)
36 | return;
37 |
38 | if (code == 0xE0) {
39 | m_layer = 1;
40 | return;
41 | }
42 |
43 | if (code == 0xE1) {
44 | m_layer = 2;
45 | return;
46 | }
47 |
48 | if (code & 0x80) {
49 | code &= 0x7F;
50 | m_up = true;
51 | }
52 |
53 | int hidCode = GP101ToHID[m_layer][code];
54 | if (!hidCode) {
55 | Debugger.Log(LogLevel.Error, "PS2Keyboard", "Unknown code %d at layer %d", code, m_layer);
56 | } else if (hidCode == -1) {
57 | /* Fake shift (ignored) */
58 | } else {
59 | if (m_up)
60 | m_kb.HandleEvent((1 << 31) | hidCode);
61 | else
62 | m_kb.HandleEvent((0 << 31) | hidCode);
63 | }
64 |
65 | m_up = 0;
66 | m_layer = 0;
67 | }
68 |
69 | package static void UpdateLED() {
70 | Debugger.Log(LogLevel.Notice, "PS2Keyboard", "LED is not implemented yet!");
71 | }
72 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/PS2KeyboardMouse/PS2KeyboardMouse.mdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Default
5 | AnyCPU
6 | GenericProject
7 | {D91728C6-3DEF-4A60-A625-8DD0DDE3CF8B}
8 |
9 |
10 | .
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/PS2KeyboardMouse/PS2Mouse.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.Input.PS2KeyboardMouse.PS2Mouse;
9 |
10 | import ObjectManager;
11 |
12 | import Modules.Input.Mouse;
13 | import Modules.Input.PS2KeyboardMouse;
14 |
15 |
16 | static class PS2Mouse {
17 | private enum {
18 | SENSITIVITY = 1,
19 | NUM_AXIES = 2,
20 | NUM_BUTTONS = 5
21 | }
22 |
23 | package __gshared void function() EnableMouse;
24 |
25 | private __gshared byte[4] m_bytes;
26 | private __gshared int m_cycle;
27 | private __gshared Mouse m_mouse;
28 |
29 | static ModuleResult Initialize(string[] args) {
30 | m_mouse = new Mouse("PS2Mouse", _DriverInfo_Input_PS2Mouse.Version, NUM_AXIES, NUM_BUTTONS);
31 | EnableMouse();
32 |
33 | return ModuleResult.Successful;
34 | }
35 |
36 | static ModuleResult Finalize() {
37 | delete m_mouse;
38 |
39 | return ModuleResult.Successful;
40 | }
41 |
42 | package static void Handler(byte code) {
43 | m_bytes[m_cycle] = code;
44 |
45 | if (!m_cycle && !(m_bytes[0] & 0x08))
46 | return;
47 |
48 | if (++m_cycle < 3)
49 | return;
50 |
51 | m_cycle = 0;
52 | if (m_bytes[0] & 0xC0)
53 | return;
54 |
55 | if (m_bytes[0] & 0x10)
56 | m_bytes[1] = cast(byte)-(256 - m_bytes[1]);
57 |
58 | if (m_bytes[0] & 0x10)
59 | m_bytes[2] = cast(byte)-(256 - m_bytes[2]);
60 | m_bytes[2] = -m_bytes[2];
61 |
62 | int[2] b;
63 | b[0] = m_bytes[1] * SENSITIVITY;
64 | b[1] = m_bytes[2] * SENSITIVITY;
65 |
66 | // Apply scaling
67 | // TODO: Apply a form of curve to the mouse movement (dx*log(dx), dx^k?)
68 | // TODO: Independent sensitivities?
69 | // TODO: Disable acceleration via a flag?
70 |
71 | // TODO: Scroll wheel?
72 | m_mouse.HandleEvent(m_bytes[0] & 7, b);
73 | }
74 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Input/PS2KeyboardMouse/package.d:
--------------------------------------------------------------------------------
1 | module Modules.Input.PS2KeyboardMouse;
2 |
3 | public import Modules.Input.PS2KeyboardMouse.Main;
4 | public import Modules.Input.PS2KeyboardMouse.KBC8042;
5 | public import Modules.Input.PS2KeyboardMouse.PS2Mouse;
6 | public import Modules.Input.PS2KeyboardMouse.DriverInfo;
7 | public import Modules.Input.PS2KeyboardMouse.PS2Keyboard;
8 | public import Modules.Input.PS2KeyboardMouse.KeyboardTransTab;
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/LinkerScript.ld:
--------------------------------------------------------------------------------
1 | SECTIONS {
2 | .KMODULES : {
3 | */DriverInfo.d.o (.rodata.*)
4 | }
5 | }
6 | INSERT AFTER .data;
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Makefile.tpl:
--------------------------------------------------------------------------------
1 | #
2 | # Module Template Makefile
3 | #
4 |
5 | -include $(dir $(lastword $(MAKEFILE_LIST)))../Makefile.cfg
6 |
7 |
8 | DFLAGS += -I$(SYS_DIR)/KernelLand/Kernel -I$(SYS_DIR)/KernelLand/Kernel/Architectures/$(ARCH) -I$(SYS_DIR)/KernelLand
9 |
10 | ifneq ($(CATEGORY),)
11 | FULLNAME := $(CATEGORY)_$(NAME)
12 | else
13 | FULLNAME := $(NAME)
14 | endif
15 |
16 | ifneq ($(BUILDTYPE),static)
17 | SUFFIX := dyn-$(ARCH)
18 | KEXT := ../$(FULLNAME).kext
19 | BIN := $(KEXT).$(ARCH)
20 | DFLAGS += $(DYNMOD_DFLAGS)
21 | else
22 | SUFFIX := st-$(ARCH)
23 | BIN := ../$(NAME).xo.$(ARCH)
24 | DFLAGS += $(KERNEL_DFLAGS)
25 | endif
26 |
27 | OBJ := $(addprefix obj_$(SUFFIX)/,$(OBJ))
28 | DEPFILES := $(OBJ:%=%.dep)
29 |
30 | .PHONY: all clean install
31 |
32 | all: $(BIN)
33 | @true
34 |
35 | clean:
36 | @$(RM) $(BIN) $(BIN).dsm obj_st-* obj_dyn-* ../$(FULLNAME).* ../$(NAME).*
37 | @$(RM) $(ROOT_DIR)/System/Modules/$(FULLNAME).kext.gz
38 |
39 | install: $(BIN)
40 | ifneq ($(BUILDTYPE),static)
41 | @echo --- Module $(NAME) was installed to System/Modules/$(FULLNAME).kext.gz
42 | @$(MKDIR) $(ROOT_DIR)/System/Modules
43 | @cp $(BIN) $(KEXT)
44 | @gzip -c $(KEXT) > $(KEXT).gz
45 | @$(RM) $(KEXT)
46 | @cp $(KEXT).gz $(ROOT_DIR)/System/Modules/$(FULLNAME).kext.gz
47 | else
48 | @true
49 | endif
50 |
51 | ifneq ($(BUILDTYPE),static)
52 | $(BIN): $(OBJ)
53 | @echo --- LD -o $@
54 | @$(LD) --allow-shlib-undefined -shared -o $@ -defsym=DriverInfo=_DriverInfo_$(FULLNAME) $(LDFLAGS) $<
55 | @$(OBJDUMP) -d -S $(BIN) > $(BIN).dsm
56 | else
57 | $(BIN): %.xo.$(ARCH): $(OBJ)
58 | @echo --- LD -o $@
59 | @$(LD) -T $(SYS_DIR)/KernelLand/Modules/LinkerScript.ld -r -o $@ $(OBJ)
60 | endif
61 |
62 | obj_$(SUFFIX)/%.d.o: %.d
63 | @echo --- DD -o $@
64 | @$(MKDIR) $(dir $@)
65 | @$(DD) $(DFLAGS) -of=$@ -c -deps=$@.o.dep $<
66 |
67 |
68 | -include $(DEPFILES)
69 |
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Storage/ATA/ATA.mdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Default
5 | AnyCPU
6 | GenericProject
7 | {834F80D2-57C2-4E82-B6F8-EF39294A6A4F}
8 |
9 |
10 | .
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Storage/ATA/DriverInfo.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.Storage.ATA.DriverInfo;
9 |
10 | import ObjectManager;
11 | import Modules.Storage.ATA.Main;
12 |
13 |
14 | extern(C) const ModuleDef _DriverInfo_Storage_ATA = {
15 | Magic: MODULE_MAGIC,
16 | Type: DeviceType.Input,
17 | Architecture: ModuleArch.x86_64,
18 | Flags: 0x00,
19 | Version: 0x01,
20 | Name: "ATA Storage Module",
21 | Identifier: "com.modules.Storage.ATA",
22 | Initialize: &ATA.Initialize,
23 | Finalize: &ATA.Finalize
24 | };
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Storage/ATA/Main.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.Storage.ATA.Main;
9 |
10 | import Core;
11 | import ObjectManager;
12 | import Modules.Storage.ATA.ATAController;
13 |
14 |
15 | class ATA {
16 | private __gshared ATAController[2] m_controllers;
17 |
18 | static ModuleResult Initialize(string[] args) {
19 | m_controllers = ATAController.Detect();
20 |
21 | return ModuleResult.Successful;
22 | }
23 |
24 | static ModuleResult Finalize() {
25 | delete m_controllers[0];
26 | delete m_controllers[1];
27 |
28 | return ModuleResult.Successful;
29 | }
30 | }
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Storage/ATA/Makefile:
--------------------------------------------------------------------------------
1 | NAME = ATA
2 | OBJ += $(addsuffix .o,$(shell find * -name "*.d"))
3 |
4 | -include ../Makefile.tpl
--------------------------------------------------------------------------------
/Tools/Garbage/Modules/Storage/Makefile.tpl:
--------------------------------------------------------------------------------
1 | CATEGORY = Storage
2 |
3 | -include ../../Makefile.tpl
--------------------------------------------------------------------------------
/Tools/Garbage/ObjectManager/IBlockDevice.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module ObjectManager.IBlockDevice;
9 |
10 |
11 | /**
12 | * This interface is inherted by every block device/driver and provide a common
13 | * method to communicate.
14 | *
15 | */
16 | interface IBlockDevice {
17 | /**
18 | * Getter
19 | *
20 | * Returns:
21 | * number of block in block device
22 | */
23 | @property long Blocks();
24 |
25 | /**
26 | * Getter
27 | *
28 | * Returns:
29 | * size of block in bytes
30 | */
31 | @property int BlockSize();
32 |
33 | /**
34 | * Read from block device
35 | *
36 | * Params:
37 | * offset = where start reading
38 | * data = initialized array where length detemine how many
39 | * bytes will be red
40 | *
41 | * Returns:
42 | * length of red data. Will be less or equals to data.length
43 | */
44 | ulong Read(long offset, byte[] data);
45 |
46 | /**
47 | * Write to block device
48 | *
49 | * Params:
50 | * offset = where to write
51 | * data = source array with data.
52 | *
53 | * Returns:
54 | * length of written data. Will be less or equals to data.length
55 | */
56 | ulong Write(long offset, byte[] data);
57 | }
--------------------------------------------------------------------------------
/Tools/Garbage/ObjectManager/package.d:
--------------------------------------------------------------------------------
1 | module ObjectManager;
2 |
3 | public import ObjectManager.Resource;
4 | public import ObjectManager.IBlockDevice;
5 | public import ObjectManager.DeviceManager;
6 | public import ObjectManager.ModuleManager;
7 | public import ObjectManager.ResourceManager;
--------------------------------------------------------------------------------
/Tools/Garbage/Property.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module Library.Property;
8 |
9 | enum Property(T, string name) = "public " ~ T.stringof ~ " " ~ name ~ ";";
10 |
11 | /*q{ TODO
12 | private $type m_$property;
13 |
14 | final @property ref $type $property() @safe pure nothrow {
15 | return m_$property;
16 | }
17 | }.replace("$property", name).replace("$type", T.stringof);*/
--------------------------------------------------------------------------------
/Tools/Garbage/StringBuilder.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Library.StringBuilder;
9 |
10 |
11 | final class StringBuilder {
12 | static const int DefaultCapacity = 16;
13 | static const int MaxChunkSize = 8000;
14 |
15 | private char[] m_chars;
16 | private StringBuilder m_previous;
17 | private long m_length;
18 | private long m_offset;
19 | private long m_maxCapacity = 0;
20 |
21 |
22 | @property long Length() { return m_offset + m_length; }
23 | @property long Capacity() { return m_offset + m_chars.length; }
24 | @property long MaxCapacity() { return m_maxCapacity; }
25 |
26 | @property void Capacity(long value) {
27 | //TODO
28 | }
29 |
30 | this() {
31 | this(DefaultCapacity);
32 | }
33 |
34 | this(int capacity) {
35 | this(null, capacity);
36 | }
37 |
38 | this(string value) {
39 | this(value, DefaultCapacity);
40 | }
41 |
42 | this(string value, long capacity) {
43 | this(value, 0, value !is null ? value.length : 0, capacity);
44 | }
45 |
46 | this(string value, long startIndex, long length, long capacity) {
47 | //TODO: contracts
48 |
49 | if (value is null)
50 | value = "";
51 |
52 | if (startIndex > value.length - length)
53 | {} //TODO: throw...
54 |
55 | m_maxCapacity = long.max;
56 | if (!capacity)
57 | capacity = DefaultCapacity;
58 |
59 | if (capacity < length)
60 | capacity = length;
61 |
62 | m_chars = new char[capacity];
63 | m_length = length;
64 |
65 | m_chars[0 .. value.length - startIndex] = value[startIndex .. $];
66 | }
67 |
68 | this(long capacity, long maxCapacity) {
69 | if (!capacity)
70 | capacity = DefaultCapacity < maxCapacity ? DefaultCapacity : maxCapacity;
71 |
72 | m_maxCapacity = maxCapacity;
73 | m_chars = new char[capacity];
74 | }
75 |
76 | ~this() {
77 | delete m_chars;
78 | }
79 |
80 | void Append(string value) {
81 | //TODO
82 | }
83 |
84 | void Insert(long index, string value) {
85 | //TODO
86 | }
87 |
88 | string ToString() {
89 | return "TODO stirng";
90 | //TODO
91 | }
92 | }
--------------------------------------------------------------------------------
/Tools/Garbage/TaskManager/EventWaitHandle.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module TaskManager.EventWaitHandle;
9 |
10 | import ObjectManager;
11 |
12 |
13 | class EventWaitHandle : Resource {
14 | private enum IDENTIFIER = "com.trinix.TaskManager.EventWaitHandle";
15 |
16 |
17 | this() {
18 | CallTable[] callTable = [
19 |
20 | ];
21 |
22 | super(DeviceType.IPC, IDENTIFIER, 0x01, callTable);
23 | }
24 | }
--------------------------------------------------------------------------------
/Tools/Garbage/TaskManager/Mutex.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module TaskManager.Mutex;
9 |
10 | import Library;
11 | import TaskManager;
12 | import ObjectManager;
13 |
14 |
15 | class Mutex : Resource {
16 | private enum IDENTIFIER = "com.trinix.TaskManager.Mutex";
17 |
18 | private SpinLock m_spinLock;
19 | private LinkedList!Thread m_waiting;
20 | private Thread m_owner;
21 |
22 | this() {
23 | CallTable[] callTable = [
24 |
25 | ];
26 |
27 | m_spinLock = new SpinLock();
28 | m_waiting = new LinkedList!Thread();
29 |
30 | super(DeviceType.IPC, IDENTIFIER, 0x01, callTable);
31 | }
32 |
33 | ~this() {
34 | delete m_spinLock;
35 | delete m_waiting;
36 | }
37 |
38 | bool WaitOne() {
39 | m_spinLock.WaitOne();
40 |
41 | if (m_owner) {
42 | m_waiting.Add(Thread.Current);
43 |
44 | m_spinLock.Release();
45 | Thread.Current.SetAndWaitForStatusEnd(ThreadState.MutexWait);
46 | } else {
47 | m_owner = Thread.Current;
48 | m_spinLock.Release();
49 | }
50 |
51 | return true;
52 | }
53 |
54 | void Release() {
55 | m_spinLock.WaitOne();
56 |
57 | if (m_waiting.Count) {
58 | m_owner = m_waiting.First.Value;
59 | m_waiting.RemoveFirst();
60 |
61 | if (m_owner.State == ThreadState.MutexWait)
62 | m_owner.AddActive();
63 | } else
64 | m_owner = null;
65 |
66 | m_spinLock.Release();
67 | }
68 |
69 | bool IsLocked() {
70 | return m_owner !is null;
71 | }
72 | }
--------------------------------------------------------------------------------
/Tools/Garbage/TaskManager/Process.s:
--------------------------------------------------------------------------------
1 | [bits 64]
2 | [global _Proc_SaveSSE]
3 | [global _Proc_Read_RIP]
4 | [global _Proc_EnableSSE]
5 | [global _Proc_RestoreSSE]
6 | [global _Proc_DisableSSE]
7 | [global _Proc_InitialiseSSE]
8 |
9 |
10 | _Proc_InitialiseSSE:
11 | mov rax, cr4
12 | or ax, (1 << 9)|(1 << 10)
13 | mov cr4, rax
14 | mov rax, cr0
15 | and ax, ~(1 << 2)
16 | or rax, (1 << 1)
17 | mov rax, cr0
18 | ret
19 |
20 |
21 | _Proc_DisableSSE:
22 | mov rax, cr0
23 | or ax, 1 << 3
24 | mov cr0, rax
25 | ret
26 |
27 |
28 | _Proc_EnableSSE:
29 | mov rax, cr0
30 | and ax, ~(1 << 3)
31 | mov cr0, rax
32 | ret
33 |
34 |
35 | _Proc_SaveSSE:
36 | fxsave [rdi]
37 | ret
38 |
39 |
40 | _Proc_RestoreSSE:
41 | fxrstor [rdi]
42 | ret
43 |
44 |
45 | _Proc_Read_RIP:
46 | pop rax
47 | jmp rax
--------------------------------------------------------------------------------
/Tools/Garbage/TaskManager/ReaderWriterLock.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module TaskManager.ReaderWriterLock;
9 |
10 | import ObjectManager;
11 |
12 |
13 | class ReaderWriterLock : Resource {
14 | private enum IDENTIFIER = "com.trinix.TaskManager.ReaderWriterLock";
15 |
16 |
17 | this() {
18 | CallTable[] callTable = [
19 |
20 | ];
21 |
22 | super(DeviceType.IPC, IDENTIFIER, 0x01, callTable);
23 | }
24 | }
--------------------------------------------------------------------------------
/Tools/Garbage/TaskManager/SharedMemory.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module TaskManager.SharedMemory;
9 |
10 | import ObjectManager;
11 |
12 |
13 | class SharedMemory : Resource {
14 | private enum IDENTIFIER = "com.trinix.TaskManager.SharedMemory";
15 |
16 |
17 | this() {
18 | CallTable[] callTable = [
19 |
20 | ];
21 |
22 | super(DeviceType.IPC, IDENTIFIER, 0x01, callTable);
23 | }
24 | }
--------------------------------------------------------------------------------
/Tools/Garbage/TaskManager/package.d:
--------------------------------------------------------------------------------
1 | module TaskManager;
2 |
3 | public import TaskManager.Task;
4 | public import TaskManager.Mutex;
5 | public import TaskManager.Thread;
6 | public import TaskManager.Process;
7 | public import TaskManager.Semaphore;
8 | public import TaskManager.SignalType;
9 | public import TaskManager.SharedMemory;
10 | public import TaskManager.EventWaitHandle;
11 | public import TaskManager.ReaderWriterLock;
--------------------------------------------------------------------------------
/Tools/Garbage/Terminal/Makefile.tpl:
--------------------------------------------------------------------------------
1 | CATEGORY = Terminal
2 |
3 | -include ../../Makefile.tpl
--------------------------------------------------------------------------------
/Tools/Garbage/Terminal/VTY/DriverInfo.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Modules.Terminal.VTY.DriverInfo;
9 |
10 | import ObjectManager;
11 | import Modules.Terminal.VTY.Main;
12 |
13 |
14 | extern(C) const ModuleDef _DriverInfo_Terminal_VTY = {
15 | Magic: MODULE_MAGIC,
16 | Type: DeviceType.Terminal,
17 | Architecture: ModuleArch.x86_64,
18 | Flags: 0x00,
19 | Version: 0x01,
20 | Name: "VTY Terminal Module",
21 | Identifier: "com.modules.Terminal.VTY",
22 | Initialize: &VTY.Initialize,
23 | Finalize: &VTY.Finalize
24 | };
--------------------------------------------------------------------------------
/Tools/Garbage/Terminal/VTY/Makefile:
--------------------------------------------------------------------------------
1 | NAME = VTY
2 | OBJ += $(addsuffix .o,$(shell find * -name "*.d"))
3 |
4 | -include ../Makefile.tpl
--------------------------------------------------------------------------------
/Tools/Garbage/VFSManager/BlockNode.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module VFSManager.BlockNode;
9 |
10 | import VFSManager;
11 |
12 |
13 | abstract class BlockNode : FSNode {
14 | @property long Blocks();
15 | @property long BlockSize();
16 |
17 | this(DirectoryNode parent, FileAttributes attributes) {
18 | m_attributes = attributes;
19 | m_attributes.Type = FileType.BlockDevice;
20 |
21 | super(parent);
22 | }
23 | }
--------------------------------------------------------------------------------
/Tools/Garbage/VFSManager/CharNode.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module VFSManager.CharNode;
9 |
10 | import VFSManager;
11 |
12 |
13 | abstract class CharNode : FSNode {
14 | this(DirectoryNode parent, FileAttributes attributes) {
15 | m_attributes = attributes;
16 | m_attributes.Type = FileType.CharDevice;
17 |
18 | super(parent);
19 | }
20 | }
--------------------------------------------------------------------------------
/Tools/Garbage/VFSManager/FileAttributes.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module VFSManager.FileAttributes;
9 |
10 | import TaskManager;
11 | import Architecture;
12 |
13 |
14 | /**
15 | * Type of node
16 | * Used in FileAttributes
17 | *
18 | */
19 | enum FileType {
20 | File = 0x01,
21 | Directory = 0x02,
22 | CharDevice = 0x04,
23 | BlockDevice = 0x08,
24 | Pipe = 0x10,
25 | SymLink = 0x20,
26 | Mountpoint = 0x40,
27 | Socket = 0x80
28 | }
29 |
30 |
31 | /**
32 | * Permissions of node.
33 | * Used in FileAttributes.
34 | *
35 | */
36 | enum FilePermissions {
37 | OtherExecute = 1,
38 | OtherWrite = 2,
39 | OtherRead = 4,
40 | GroupExecute = 8,
41 | GroupWrite = 16,
42 | GroupRead = 32,
43 | UserExecute = 64,
44 | UserWrite = 128,
45 | UserRead = 256
46 | }
47 |
48 |
49 | /**
50 | * Attributes of each node in filesystem.
51 | *
52 | */
53 | struct FileAttributes {
54 | string Name;
55 | FileType Type;
56 | ulong Length;
57 | ulong UID;
58 | ulong GID;
59 | FilePermissions Permissions;
60 | ulong AccessTime;
61 | ulong CreateTime;
62 | ulong ModifyTime;
63 |
64 | static FileAttributes opCall(string name, FileType type = FileType.Directory) {
65 | FileAttributes ret;
66 |
67 | ret.Name = name;
68 | ret.Type = type;
69 | ret.Permissions = FilePermissions.UserRead | FilePermissions.UserWrite
70 | | FilePermissions.GroupRead | FilePermissions.OtherRead;
71 | ret.UID = Process.Current.UID;
72 | ret.GID = Process.Current.GID;
73 | ret.AccessTime = Time.Now;
74 | ret.ModifyTime = ret.AccessTime;
75 | ret.CreateTime = ret.AccessTime;
76 |
77 | return ret;
78 | }
79 | }
--------------------------------------------------------------------------------
/Tools/Garbage/VFSManager/FileNode.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module VFSManager.FileNode;
9 |
10 | import VFSManager;
11 |
12 |
13 | abstract class FileNode : FSNode {
14 | this(DirectoryNode parent, FileAttributes fileAttributes) {
15 | m_attributes = fileAttributes;
16 | m_attributes.Type = FileType.File;
17 |
18 | super(parent);
19 | }
20 | }
--------------------------------------------------------------------------------
/Tools/Garbage/VFSManager/IFileSystem.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module VFSManager.IFileSystem;
9 |
10 | import VFSManager;
11 |
12 |
13 | /**
14 | * This interface is inherted by every filesystem driver like devfs, ext2, etc.
15 | * Provide a common methods for work with filesystem
16 | *
17 | */
18 | interface IFileSystem {
19 | /**
20 | * Getter
21 | *
22 | * Returns:
23 | * instance of mounted partition
24 | */
25 | @property Partition GetPartition();
26 |
27 | /**
28 | * Getter
29 | *
30 | * Returns:
31 | * true if mounted filesystem is writable
32 | *
33 | * TODO:
34 | * o Rename this to 'CanWrite'
35 | */
36 | @property bool IsWritable();
37 |
38 | /**
39 | * Getter
40 | *
41 | * Returns:
42 | * object of root directory of the filesystem
43 | */
44 | @property DirectoryNode RootNode();
45 |
46 | /**
47 | * Unmount the filesystem
48 | *
49 | * Returns:
50 | * true if filesystem was unmounted successfuly
51 | */
52 | bool Unmount();
53 |
54 | /**
55 | * Load content of directory node and automaticaly add found
56 | * nodes into direcotry node
57 | *
58 | * Params:
59 | * node = node of directory what we want to load
60 | *
61 | * Returns:
62 | * true if content was loaded successfuly
63 | */
64 | bool LoadContent(DirectoryNode node);
65 |
66 | /**
67 | * Create new node in specific directory
68 | *
69 | * Params:
70 | * parent = directory where we want to create a node
71 | * attributes = attributes of creating node
72 | *
73 | * Returns:
74 | * object of created node
75 | */
76 | FSNode Create(DirectoryNode parent, FileAttributes attributes);
77 |
78 | /**
79 | * Remove node from filesystem.
80 | * This will be called only from FSNode.Remove method
81 | *
82 | * Params:
83 | * node = node what we want to remove
84 | *
85 | * Returns:
86 | * true if node was removed successfuly
87 | */
88 | bool Remove(FSNode node);
89 | }
--------------------------------------------------------------------------------
/Tools/Garbage/VFSManager/MemoryNode.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module VFSManager.MemoryNode;
9 |
10 | import VFSManager;
11 |
12 |
13 | class MemoryNode : FSNode {
14 | private byte[] m_buffer;
15 |
16 | this(byte[] buffer, DirectoryNode parent, FileAttributes fileAttributes) {
17 | m_buffer = buffer;
18 | m_attributes = fileAttributes;
19 | m_attributes.Type = FileType.CharDevice;
20 |
21 | super(parent);
22 | }
23 |
24 | override ulong Read(long offset, byte[] data) {
25 | if (offset > m_buffer.length)
26 | return 0;
27 |
28 | long len = offset + data.length > m_buffer.length ? m_buffer.length - offset : data.length;
29 | data[] = (cast(byte *)m_buffer)[offset .. len];
30 |
31 | return len;
32 | }
33 |
34 | override ulong Write(long offset, byte[] data) {
35 | if (offset > m_buffer.length)
36 | return 0;
37 |
38 | long len = offset + data.length > m_buffer.length ? m_buffer.length - offset : data.length;
39 | (cast(byte *)m_buffer)[offset .. len] = data[];
40 |
41 | return len;
42 | }
43 | }
--------------------------------------------------------------------------------
/Tools/Garbage/VFSManager/PipeNode.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module VFSManager.PipeNode;
9 |
10 | import VFSManager;
11 |
12 |
13 | abstract class PipeNode : FSNode {
14 | this(DirectoryNode parent, FileAttributes attributes) {
15 | m_attributes = attributes;
16 | m_attributes.Type = FileType.Pipe;
17 |
18 | super(parent);
19 | }
20 | }
--------------------------------------------------------------------------------
/Tools/Garbage/VFSManager/SocketNode.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module VFSManager.SocketNode;
9 |
10 | import VFSManager;
11 |
12 |
13 | abstract class SocketNode : FSNode {
14 | this(DirectoryNode parent, FileAttributes fileAttributes) {
15 | m_attributes = fileAttributes;
16 | m_attributes.Type = FileType.Socket;
17 |
18 | super(parent);
19 | }
20 | }
--------------------------------------------------------------------------------
/Tools/Garbage/VFSManager/SymLinkNode.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module VFSManager.SymLinkNode;
9 |
10 | import VFSManager;
11 |
12 |
13 | abstract class SymLinkNode : FSNode {
14 | this(DirectoryNode parent, FileAttributes fileAttributes) {
15 | m_attributes = fileAttributes;
16 | m_attributes.Type = FileType.SymLink;
17 |
18 | super(parent);
19 | }
20 | }
--------------------------------------------------------------------------------
/Tools/Garbage/VFSManager/package.d:
--------------------------------------------------------------------------------
1 | module VFSManager;
2 |
3 | public import VFSManager.VFS;
4 | public import VFSManager.FSNode;
5 | public import VFSManager.PipeNode;
6 | public import VFSManager.CharNode;
7 | public import VFSManager.FileNode;
8 | public import VFSManager.BlockNode;
9 | public import VFSManager.Partition;
10 | public import VFSManager.BlockCache;
11 | public import VFSManager.MemoryNode;
12 | public import VFSManager.SocketNode;
13 | public import VFSManager.IFileSystem;
14 | public import VFSManager.SymLinkNode;
15 | public import VFSManager.DirectoryNode;
16 | public import VFSManager.FileAttributes;
--------------------------------------------------------------------------------
/Userspace/Application/Test/Makefile:
--------------------------------------------------------------------------------
1 | -include $(dir $(lastword $(MAKEFILE_LIST)))../../Makefile.cfg
2 |
3 | NAME = Test.elf
4 | SRC += $(shell find -name "*.d")
5 |
6 | DFLAGS = -I../druntime/src -I$(TRXROOT)/Library/Kappa.framework/Import/
7 | DFLAGS += -L $(TRXROOT)/Library/Kappa.framework/ -lgcc -l:Kappa.so.0.1.0
8 | #LDFLAGS = -nostdlib -L/os/Root/Library -l :Framework.so -e _d_run_main
9 |
10 |
11 | $(NAME):
12 | @echo "[ D ] Compiling test..."
13 | $(DD) $(SRC) -o $(NAME) $(DFLAGS)
14 |
15 | clean:
16 | @echo "Cleaning..."
17 | @rm -rf $(NAME)
--------------------------------------------------------------------------------
/Userspace/Application/Test/main.d:
--------------------------------------------------------------------------------
1 | module main;
2 |
3 | import Handle;
4 |
5 | int main() {
6 |
7 | Handle a = new Handle();
8 | return 0;
9 | }
10 |
11 | extern(C) void _d_run_main() {
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/Userspace/Binary/NOTHING:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Userspace/Binary/NOTHING
--------------------------------------------------------------------------------
/Userspace/Bundle/NOTHING:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Userspace/Bundle/NOTHING
--------------------------------------------------------------------------------
/Userspace/FileSystem/Makefile:
--------------------------------------------------------------------------------
1 | #
2 | # Trinix FyleSystem creator
3 | #
4 |
5 | -include ../Makefile.cfg
6 |
7 | .PHONY: install
8 |
9 | IMG := $(TRXDIR)/Trinix.img
10 |
11 | install: $(IMG)
12 | @kpartx -a $(IMG)
13 | @sleep 1
14 |
15 | @$(MKDIR) mount-tmp
16 | @mount /dev/mapper/loop0p1 mount-tmp
17 |
18 | @cp -Rf $(TRXDIR)/Root/* mount-tmp
19 |
20 | @umount mount-tmp
21 | @$(RM) mount-tmp
22 | @kpartx -d $(IMG)
23 |
24 | $(IMG):
25 | @dd if=/dev/zero of=/opt/$(IMG) bs=512 count=100000
26 | @parted --script /opt/$(IMG) mktable msdos mkpart p ext2 1 40 set 1 boot on
27 | @kpartx -a /opt/$(IMG)
28 | @sleep 1
29 | @mkfs.ext2 /dev/mapper/loop0p1
30 |
31 | @$(MKDIR) mount-tmp
32 | @mount /dev/mapper/loop0p1 mount-tmp
33 |
34 | @grub2-install --no-floppy --boot-directory=mount-tmp/System/Boot /dev/loop0
35 |
36 | @umount mount-tmp
37 | @$(RM) mount-tmp
38 | @kpartx -d /opt/$(IMG)
39 | @mv /opt/$(IMG) $(IMG)
--------------------------------------------------------------------------------
/Userspace/Framework/NOTHING:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rikarin/Trinix/393f576a0f7a00a8c0262b1d862c9c0a94e4b1f7/Userspace/Framework/NOTHING
--------------------------------------------------------------------------------
/Userspace/Library/Makefile:
--------------------------------------------------------------------------------
1 | include $(dir $(lastword $(MAKEFILE_LIST)))../Makefile
--------------------------------------------------------------------------------
/Userspace/Library/Makefile.cfg:
--------------------------------------------------------------------------------
1 | #
2 | # Libraries makefile
3 | #
4 |
5 | _libsdir := $(dir $(lastword $(MAKEFILE_LIST)))
6 | -include $(_libsdir)../Makefile.cfg
7 |
8 |
9 | MAKEDEP = $(CC) -M
10 |
11 | CFLAGS := -fno-stack-protector -fPIC
12 | LDFLAGS += -g -shared -eSoStart -L$(OUTPUTDIR)Library/ --no-undefined
13 | LIBS :=
14 | #-lld
15 |
16 |
17 | -include $(_libsdir)../common_settings.mk
--------------------------------------------------------------------------------
/Userspace/Library/crt0.o_src/Makefile:
--------------------------------------------------------------------------------
1 | #
2 | # Makefile
3 | #
4 |
5 | -include ../../Makefile.cfg
6 |
7 | OUTPUT = $(TRXROOT)/System/Library/Frameworks/Kappa.framework/crt
8 | BIN = $(OUTPUT)/crt0.o $(OUTPUT)/crt0S.o $(OUTPUT)/crti.o $(OUTPUT)/crtn.o
9 |
10 | .PHONY: all clean install
11 |
12 |
13 | all: $(BIN)
14 | install: $(BIN)
15 |
16 | clean:
17 | @$(RM) $(BIN)
18 |
19 |
20 | $(OUTPUT)/%S.o: %S.c Makefile
21 | @mkdir -p $(dir $@)
22 | @$(CC) $(CFLAGS) -c $< -o $@ -fPIC
23 |
24 | $(OUTPUT)/%.o: %.c Makefile
25 | @mkdir -p $(dir $@)
26 | @$(CC) $(CFLAGS) -c $< -o $@
27 |
28 | $(OUTPUT)/%.o: %.s
29 | @mkdir -p $(dir $@)
30 | @$(CC) $(CFLAGS) -c $< -o $@
--------------------------------------------------------------------------------
/Userspace/Library/crt0.o_src/crt0.c:
--------------------------------------------------------------------------------
1 | typedef void (*exithandler_t)(void);
2 | typedef void (*constructor_t)(void);
3 |
4 | constructor_t _crtbegin_ctors[0] __attribute__((section(".ctors")));
5 | exithandler_t _crt0_exit_handler;
6 |
7 | extern void _init(void);
8 | extern void _fini(void);
9 | //extern void _exit(int status) __attribute__((noreturn));
10 | extern int main(int argc, char *argv[], char **envp);
11 |
12 | void _start(int argc, char *argv[], char **envp)
13 | {
14 | // TODO: isn't this handled by _init?
15 | /*for( int i = 0; _crtbegin_ctors[i]; i ++ )
16 | _crtbegin_ctors[i]();*/
17 |
18 | _init();
19 |
20 | int rv = main(argc, argv, envp);
21 |
22 | if( _crt0_exit_handler )
23 | _crt0_exit_handler();
24 | _fini();
25 | //_exit(rv); TODO
26 | }
27 |
--------------------------------------------------------------------------------
/Userspace/Library/crt0.o_src/crt0S.c:
--------------------------------------------------------------------------------
1 | typedef void (*exithandler_t)(void);
2 | typedef void (*constructor_t)(void);
3 |
4 | extern void _SysDebug(const char *, ...);
5 | extern void _init(void);
6 | extern void _fini(void);
7 | extern int SoMain(void *Base, int argc, char *argv[], char **envp) __attribute__((weak));
8 |
9 | int SoStart(void *Base, int argc, char *argv[], char **envp)
10 | {
11 | //_SysDebug("SoStart(%p,%i,%p)", Base, argc, argv);
12 | _init();
13 |
14 | if (SoMain)
15 | return SoMain(Base, argc, argv, envp);
16 | return 0;
17 | }
18 |
--------------------------------------------------------------------------------
/Userspace/Library/crt0.o_src/crti.s:
--------------------------------------------------------------------------------
1 | .section .init
2 | .global _init
3 | .type _init, @function
4 | _init:
5 | push %rbp
6 | mov %rsp, %rbp
7 | /* gcc will nicely put the contents of crtbegin.o's .init section here. */
8 |
9 | .section .fini
10 | .global _fini
11 | .type _fini, @function
12 | _fini:
13 | push %rbp
14 | mov %rsp, %rbp
15 | /* gcc will nicely put the contents of crtbegin.o's .fini section here. */
16 |
--------------------------------------------------------------------------------
/Userspace/Library/crt0.o_src/crtn.s:
--------------------------------------------------------------------------------
1 | .section .init
2 | /* gcc will nicely put the contents of crtend.o's .init section here. */
3 | pop %rbp
4 | ret
5 |
6 | .section .fini
7 | /* gcc will nicely put the contents of crtend.o's .fini section here. */
8 | pop %rbp
9 | ret
10 |
--------------------------------------------------------------------------------
/Userspace/Makefile.cfg:
--------------------------------------------------------------------------------
1 | #
2 | # Usermode Makefile.cfg
3 | #
4 |
5 | -include $(dir $(lastword $(MAKEFILE_LIST)))../Makefile.cfg
6 |
7 | TRXROOT := $(TRXDIR)/Root
--------------------------------------------------------------------------------
/Userspace/common_settings.mk:
--------------------------------------------------------------------------------
1 | CFLAGS += -std=gnu99 -g
2 | LDFLAGS += -L $(TRXDIR)/Externals/Output/$(ARCHDIR)/Library
3 | LDFLAGS += -L $(OUTPUTDIR)Library
4 |
5 | CRTI := $(OUTPUTDIR)Library/crti.o
6 | CRTBEGIN := $(shell $(CC) $(CFLAGS) -print-file-name=crtbegin.o 2> /dev/null)
7 | CRTBEGINS := $(shell $(CC) $(CFLAGS) -print-file-name=crtbeginS.o 2> /dev/null)
8 | CRT0 := $(OUTPUTDIR)Library/crt0.o
9 | CRT0S := $(OUTPUTDIR)Library/crt0S.o
10 | CRTEND := $(shell $(CC) $(CFLAGS) -print-file-name=crtend.o 2>/dev/null)
11 | CRTENDS := $(shell $(CC) $(CFLAGS) -print-file-name=crtendS.o 2> /dev/null)
12 | CRTN := $(OUTPUTDIR)Library/crtn.o
13 | LIBGCC_PATH = $(shell $(CC) -print-libgcc-file-name 2>/dev/null)
--------------------------------------------------------------------------------
/old/Library/Array.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Library.Array;
9 |
10 |
11 | static class Array {
12 | static T Find(T, U)(U array, bool delegate(T obj) predicate) {
13 | foreach (x; array)
14 | if (predicate(x))
15 | return x;
16 |
17 | return null;
18 | }
19 | }
--------------------------------------------------------------------------------
/old/Library/Casters.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module Library.Casters;
8 |
9 |
10 | ref auto ToArrayA(T)(ref T value) {
11 | return (cast(byte *)value.ptr)[0 .. value[0].sizeof * value.length];
12 | }
13 |
14 | ref byte[T.sizeof] ToArray(T)(ref T value) {
15 | return (cast(byte *)&value)[0 .. T.sizeof];
16 | }
--------------------------------------------------------------------------------
/old/Library/SpinLock.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module Library.SpinLock;
9 |
10 |
11 | class SpinLock {
12 | private long m_locked;
13 |
14 | private long AtomicExchange(long* value) {
15 | asm {
16 | naked;
17 | mov RAX, 1;
18 | xchg [RSI], RAX;
19 | ret;
20 | }
21 | }
22 |
23 | this() {
24 | m_locked = false;
25 | }
26 |
27 | this(bool initiallyOwned) {
28 | m_locked = initiallyOwned;
29 | }
30 |
31 | bool WaitOne() {
32 | while (AtomicExchange(&m_locked)) {}
33 | return true;
34 | }
35 |
36 | void Release() {
37 | m_locked = false;
38 | }
39 |
40 | @property bool IsLocked() {
41 | return m_locked != 0;
42 | }
43 | }
--------------------------------------------------------------------------------
/old/Library/String.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 | module Library.String;
8 |
9 | import Library.List;
10 |
11 |
12 | List!string Split(string str, char delimiter) {
13 | auto ret = new List!string();
14 |
15 | long a = 0;
16 | foreach (i, x; str) {
17 | if (x == delimiter) {
18 | ret.add(str[a .. i]);
19 | a = i + 1;
20 | }
21 | }
22 |
23 | ret.add(str[a .. $]);
24 | return ret;
25 | }
26 |
27 | string ToString(const char* str) {
28 | int i;
29 | while (str[i++] != '\0') {}
30 | return cast(string)str[0 .. i - 1];
31 | }
32 |
--------------------------------------------------------------------------------
/old/Library/package.d:
--------------------------------------------------------------------------------
1 | module Library;
2 |
3 | public import Library.Array;
4 | public import Library.String;
5 | public import Library.Casters;
6 | public import Library.Bitfield;
7 | public import Library.BitArray;
8 | public import Library.SpinLock;
9 | public import Library.LinkedList;
--------------------------------------------------------------------------------
/old/MemoryManager/IPaging.d:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Rikarin and contributors. All rights reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | module MemoryManager.IPaging;
9 |
10 | interface IPaging {
11 | /* Set paging table as current PT */
12 | void Install();
13 |
14 | /* Translate virtual address into physical */
15 | void* GetPhysicalAddress(const void* address);
16 | }
17 |
--------------------------------------------------------------------------------
/old/MemoryManager/package.d:
--------------------------------------------------------------------------------
1 | module MemoryManager;
2 |
3 | public import MemoryManager.Heap;
4 | public import MemoryManager.IPaging;
5 | public import MemoryManager.VirtualMemory;
6 | public import MemoryManager.PhysicalMemory;
7 |
--------------------------------------------------------------------------------
/old/package.d:
--------------------------------------------------------------------------------
1 | module Core;
2 |
3 | public import Core.Log;
4 | public import Core.Main;
5 | public import Core.IArch;
6 | public import Core.Multiboot;
7 |
--------------------------------------------------------------------------------