diff --git a/core.4623 b/core.4623 deleted file mode 100644 index 73cc6cc..0000000 Binary files a/core.4623 and /dev/null differ diff --git a/kernel/Makefile b/kernel/Makefile index 65eb57a..c560925 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -1,6 +1,6 @@ ##################################################################### # Author: Josh Holtrop / Benjamen R. Meyer # -# Date: 02/15/04 Modified: 06/07/04 # +# Date: 02/15/04 Modified: 06/16/04 # # Purpose: To build Josh Holtrop's OS (HOS) using GNU make # # Note: This makefile is for use on Linux & other Unix-like systems # ##################################################################### @@ -17,7 +17,7 @@ KERNEL_FORMAT=aout NASM_BIN=nasm NASM_FLAGS=-f $(KERNEL_FORMAT) -# C Compile Information: +# C++ Compile Information: CPP=g++ CPP_FLAGS=-fleading-underscore -fno-builtin -nostdlib -nostdinc++ -nostartfiles -fno-rtti -fno-exceptions -nodefaultlibs -I. -Wall @@ -30,7 +30,7 @@ LD_FLAGS=-nodefaultlibs -nostdlib --no-demangle -T link.ld # Linking the kernel together # ############################### all: Asm_Kernel Asm_Functions C_Kernel - $(LD) $(LD_FLAGS) -o kernel.bin -Map ./lst/LDout.doc ks.o kernel.o asmfuncs.o fdc.o keyboard.o kio.o mm.o mouse.o stdfont.o video.o vmm.o rtc.o pic.o io.o cstring.o string.o cmos.o hos_defines.o vfs.o devfs.o Device.o DeviceFolder.o + $(LD) $(LD_FLAGS) -o kernel.bin -Map ./lst/LDout.doc ks.o kernel.o asmfuncs.o fdc.o keyboard.o kio.o mm.o mouse.o stdfont.o video.o vmm.o rtc.o pic.o io.o cstring.o string.o cmos.o hos_defines.o vfs.o devfs.o Mount.o ########################## # Assembly Kernel Loader # @@ -66,11 +66,11 @@ C_Kernel: $(CPP) $(CPP_FLAGS) -c hos_defines.cpp -o hos_defines.o $(CPP) $(CPP_FLAGS) -c fs/vfs.cpp -o vfs.o $(CPP) $(CPP_FLAGS) -c fs/devfs.cpp -o devfs.o - $(CPP) $(CPP_FLAGS) -c fs/Device.cpp -o Device.o - $(CPP) $(CPP_FLAGS) -c fs/DeviceFolder.cpp -o DeviceFolder.o + $(CPP) $(CPP_FLAGS) -c fs/Mount.cpp -o Mount.o ################################################# # Clean up the source directory of any binaries # ################################################# clean: - rm *.s *.o *.bin *~ block/*~ char/*~ fs/*~ lang/*~ mm/*~ sys/*~ video/*~ + diff --git a/kernel/Makefile.ms b/kernel/Makefile.ms deleted file mode 100644 index eb0d89e..0000000 --- a/kernel/Makefile.ms +++ /dev/null @@ -1,74 +0,0 @@ -##################################################################### -# Author: Benjamen R. Meyer # -# Date: 2004-2-15 # -# Purpose: To build Josh Holtrop's OS (HOS) using GNU make # -# Note: This makefile is for use on Linux & other Unix-like systems # -##################################################################### - -############## -# Variables: # -############## - -# Format of kernel object files: -# Do not change unless you know what you are doing -KERNEL_FORMAT=coff - -# Assembler information: -NASM_BIN=nasm -NASM_FLAGS=-f $(KERNEL_FORMAT) - -# C Compile Information: -CC=gcc -CC_FLAGS=-ffreestanding -fno-builtin -nostdlib -nodefaultlibs -I. -Wall - -# Linker Information: -LD=ld -LD_FLAGS=-nodefaultlibs -nostdlib --no-demangle -T link.ms - - -############################### -# Linking the kernel together # -############################### -all: Asm_Kernel Asm_Functions C_Kernel - $(LD) $(LD_FLAGS) -o kernel.pe -Map ./lst/LDout.doc ks.o kernel.o asmfuncs.o fdc.o functions.o keyboard.o kio.o mm.o mouse.o stdfont.o video.o vmm.o rtc.o pic.o io.o string.o cmos.o - objcopy -O binary kernel.pe kernel.bin - - rm kernel.pe - -########################## -# Assembly Kernel Loader # -########################## -Asm_Kernel: kernel.asm - $(NASM_BIN) $(NASM_FLAGS) -o ks.o -l ./lst/kernel.lst kernel.asm - -################################# -# Assembly Functions for Kernel # -################################# -Asm_Functions: asmfuncs.asm - $(NASM_BIN) $(NASM_FLAGS) -o asmfuncs.o -l ./lst/asmfuncs.lst asmfuncs.asm - -############ -# C Kernel # -############ -C_Kernel: - $(CC) $(CC_FLAGS) -c kernel.c -o kernel.o - $(CC) $(CC_FLAGS) -c kio.c -o kio.o - $(CC) $(CC_FLAGS) -c functions.c -o functions.o - $(CC) $(CC_FLAGS) -c sys/rtc.c -o rtc.o - $(CC) $(CC_FLAGS) -c sys/pic.c -o pic.o - $(CC) $(CC_FLAGS) -c sys/io.c -o io.o - $(CC) $(CC_FLAGS) -c sys/cmos.c -o cmos.o - $(CC) $(CC_FLAGS) -c string/string.c -o string.o - $(CC) $(CC_FLAGS) -c video/stdfont.c -o stdfont.o - $(CC) $(CC_FLAGS) -c video/video.c -o video.o - $(CC) $(CC_FLAGS) -c block/fdc.c -o fdc.o - $(CC) $(CC_FLAGS) -c char/keyboard.c -o keyboard.o - $(CC) $(CC_FLAGS) -c char/mouse.c -o mouse.o - $(CC) $(CC_FLAGS) -c mm/mm.c -o mm.o - $(CC) $(CC_FLAGS) -c mm/vmm.c -o vmm.o - -################################################# -# Clean up the source directory of any binaries # -################################################# -clean: - - rm *.o ./lst/*.lst ./lst/*.doc *.bin - diff --git a/kernel/fs/Device.cpp b/kernel/fs/Device.cpp deleted file mode 100644 index 6f3fe6d..0000000 --- a/kernel/fs/Device.cpp +++ /dev/null @@ -1,128 +0,0 @@ - -// Device.cpp -// Device object for use in devfs -// Author: Josh Holtrop -// Date: 06/03/04 -// Modified: 06/09/04 - -#include "Device.h" -#include "DeviceFolder.h" -#include "hos_defines.h" -#include "lang/string.h" - - -Device::Device() -{ - uid = gid = major = minor = permissions = type = 0; -} - -Device::Device(string aname) -{ - uid = gid = major = minor = permissions = type = 0; - name = aname; -} - -//Types: -// h = hard link (. and .. only) -// l = link, call setLink() -// d = directory, automatically initializes a new DeviceFolder object -// b = block device -// c = char device -Device::Device(string aname, dword auid, dword agid, dword amajor, dword aminor, char atype, word apermissions) -{ - name = aname; - uid = auid; - gid = agid; - permissions = apermissions; - type = atype; - switch (type) - { - case 'd': - folder = new DeviceFolder(); - break; - case 'b': - case 'c': - major = amajor; - minor = aminor; - break; - case 'l': - case 'h': - default: - } -} - -Device::~Device() -{ - switch (type) - { - case 'l': - case 'h': - delete link; - break; - case 'd': - delete (DeviceFolder *)folder; - break; - } -} - -Device::Device(const Device & orig) -{ - name = orig.name; - uid = orig.uid; - gid = orig.gid; - permissions = orig.permissions; - type = orig.type; - switch (type) - { - case 'b': - case 'c': - default: - major = orig.major; - minor = orig.minor; - break; - case 'l': - case 'h': - link = new string(*orig.link); - break; - case 'd': - folder = new DeviceFolder(*(DeviceFolder *)orig.folder); - break; - } -} - -Device & Device::operator=(const Device & orig) -{ - if (&orig != this) - { - this->~Device(); - name = orig.name; - uid = orig.uid; - gid = orig.gid; - permissions = orig.permissions; - type = orig.type; - switch (type) - { - case 'b': - case 'c': - default: - major = orig.major; - minor = orig.minor; - break; - case 'l': - case 'h': - link = new string(*orig.link); - break; - case 'd': - folder = new DeviceFolder(*(DeviceFolder *)orig.folder); - break; - } - } - return *this; -} - -void Device::setLink(string alink) -{ - if (type == 'l' || type == 'h') - link = new string(alink); -} - diff --git a/kernel/fs/Device.h b/kernel/fs/Device.h deleted file mode 100644 index ba87951..0000000 --- a/kernel/fs/Device.h +++ /dev/null @@ -1,47 +0,0 @@ - -// Device.h -// Device object for use in devfs -// Author: Josh Holtrop -// Date: 06/03/04 -// Modified: 06/08/04 - -#ifndef __HOS_DEVICE__ -#define __HOS_DEVICE__ __HOS_DEVICE__ - -#include "hos_defines.h" -#include "lang/string.h" -#include "lang/LinkedList.h" - -#define DEVICE_FOLDER 0 -#define DEVICE_BLOCK 1 -#define DEVICE_CHAR 2 -#define DEVICE_LINK 3 - -class Device -{ -public: - string name; - union - { - dword major; - //can't be DeviceFolder * because not then Device & DeviceFolder are inter-dependent - void *folder; - string *link; - }; - dword uid; - dword gid; - dword minor; - word permissions; //0644 or similar - char type; //'b', 'c', 'l', 'd' - - Device(); - Device(string aname); - Device(string aname, dword auid, dword agid, dword amajor, dword aminor, char atype, word apermissions); - Device(const Device & orig); - ~Device(); - Device & operator=(const Device & orig); - void setLink(string alink); -}; - -#endif - diff --git a/kernel/fs/DeviceFolder.cpp b/kernel/fs/DeviceFolder.cpp deleted file mode 100644 index 584bd27..0000000 --- a/kernel/fs/DeviceFolder.cpp +++ /dev/null @@ -1,94 +0,0 @@ - -// DeviceFolder.cpp -// DeviceFolder object for use in devfs -// Author: Josh Holtrop -// Date: 06/03/04 -// Modified: 06/09/04 - -#include "DeviceFolder.h" -#include "Device.h" -#include "lang/LinkedList.h" -#include "kio.h" - - -void DeviceFolder::ls() -{ - LinkedList::iterator it = devices.begin(); - while (it != devices.end()) - { - printf("%c", (*it).type); - const char *bitmask = "rwxrwxrwx"; - int i = 0; - for (dword mask = 0x100; mask; mask >>= 1) - { - if ((*it).permissions & mask) - printf("%c", bitmask[i]); - else - printf("-"); - i++; - } - printf("\t%d\t%d\t", (*it).uid, (*it).gid); - switch ((*it).type) - { - case 'b': - case 'c': - default: - printf("%d, %d\t%s\n", (*it).major, (*it).minor, (*it).name.data()); - break; - case 'd': - printf("\t%s/\n", (*it).name.data()); - break; - case 'l': - printf("\t%s -> %s\n", (*it).name.data(), (*it).link->data()); - break; - } - it++; - } -} - -DeviceFolder::DeviceFolder(string location) -{ - //initialize . and .. here -} - -int DeviceFolder::addDevice(Device dev) -{ - int i = 0; - LinkedList::iterator it = devices.begin(); - while (it != devices.end() && (*it).name < dev.name) - { - it++; - i++; - } - if (it != devices.end()) - if ((*it).name == dev.name) - return 1; //name conflict - devices.insert(i, dev); - return 0; -} - -int DeviceFolder::mkdir(string name, dword uid, dword gid, word permissions) -{ - Device dev(name, uid, gid, 0, 0, 'd', permissions); - return addDevice(dev); -} - -int DeviceFolder::mklink(string name, dword uid, dword gid, string link) -{ - Device dev(name, uid, gid, 0, 0, 'l', 0777); - dev.setLink(link); - return addDevice(dev); -} - -int DeviceFolder::mknod(string name, dword uid, dword gid, dword major, dword minor, char type, word permissions) -{ - Device dev(name, uid, gid, major, minor, type, permissions); - return addDevice(dev); -} - -int DeviceFolder::size() -{ - return devices.size(); -} - - diff --git a/kernel/fs/DeviceFolder.h b/kernel/fs/DeviceFolder.h deleted file mode 100644 index 80a425c..0000000 --- a/kernel/fs/DeviceFolder.h +++ /dev/null @@ -1,30 +0,0 @@ - -// DeviceFolder.h -// DeviceFolder object for use in devfs -// Author: Josh Holtrop -// Date: 06/03/04 -// Modified: 06/09/04 - -#ifndef __HOS_DEVICEFOLDER__ -#define __HOS_DEVICEFOLDER__ __HOS_DEVICEFOLDER__ - -#include "lang/LinkedList.h" -#include "Device.h" -#include "kio.h" - -class DeviceFolder -{ -private: - LinkedList devices; - int addDevice(Device name); -public: - DeviceFolder(string location); - int size(); - int mkdir(string name, dword uid, dword gid, word permissions); - int mklink(string name, dword uid, dword gid, string link); - int mknod(string name, dword uid, dword gid, dword major, dword minor, char type, word permissions); - void ls(); -}; - -#endif - diff --git a/kernel/fs/Mount.cpp b/kernel/fs/Mount.cpp new file mode 100644 index 0000000..c005385 --- /dev/null +++ b/kernel/fs/Mount.cpp @@ -0,0 +1,28 @@ + +// Mount.cpp +// Author: Josh Holtrop +// Date: 06/16/04 +// Modified: 06/16/04 + +#include "lang/string.h" +#include "Mount.h" + +Mount::Mount() +{ +} + + +Mount::Mount(string dev, string mount) +{ + mountPoint = mount; + device = dev; +} + + +bool Mount::operator==(const Mount & second) const +{ + /* Match *either* device or mountPoint to signal an invalid mount attempt */ + return (device == second.device || mountPoint == second.mountPoint); +} + + diff --git a/kernel/fs/Mount.h b/kernel/fs/Mount.h new file mode 100644 index 0000000..ae754de --- /dev/null +++ b/kernel/fs/Mount.h @@ -0,0 +1,28 @@ + +// Mount.h +// Author: Josh Holtrop +// Date: 06/16/04 +// Modified: 06/16/04 + +#ifndef __HOS_MOUNT__ +#define __HOS_MOUNT__ __HOS_MOUNT__ + +#include "hos_defines.h" + +class Mount +{ +public: + string mountPoint; + string device; + dword major; + dword minor; + + Mount(); + Mount(string dev, string mount); + + bool operator==(const Mount & second) const; +}; + + +#endif + diff --git a/kernel/fs/devfs.cpp b/kernel/fs/devfs.cpp index 0f2c539..6b38d7c 100644 --- a/kernel/fs/devfs.cpp +++ b/kernel/fs/devfs.cpp @@ -3,30 +3,23 @@ // device filesystem for HOS // Author: Josh Holtrop // Date: 06/03/04 -// Modified: 06/10/04 +// Modified: 06/16/04 #include "devfs.h" -#include "Device.h" -#include "DeviceFolder.h" #include "kio.h" - -DeviceFolder *dev; +#include "lang/string.h" +#include "vfs.h" void devfs_init(string mountPoint) { - printf("I'm going to make a new DeviceFolder\n"); - dev = new DeviceFolder(mountPoint); - printf("I'm going to add hda1 to devfs\n"); - dev->mknod("hda1", 0, 0, 3, 1, 'b', 0632); - dev->mkdir("test", 0, 501, 0644); - dev->mkdir("test1", 0, 0, 0755); - dev->mkdir("test1", 1, 1, 0644); - dev->mknod("psmouse", 2, 3, 4, 1, 'c', 0677); - dev->mklink("root", 5, 6, "hda1"); - - printf("I'm going to list the devices i know about:\n"); - dev->ls(); -// vfs_mount("devfs", mountPoint, 0755, 0, 0); + vfs_mount("devfs ", mountPoint); + vfs_mount("testdev ", "/mnt/win"); + vfs_mount("/dev/hda6", "/scratch"); + vfs_mount("/dev/rd0 ", "/"); + vfs_mount("/dev/sda1", "/mnt/usb"); + vfs_mount("sysfs ", "/sys"); + vfs_mount("sysfs ", "/tmp"); + vfs_mount("otherfs ", "/sys"); } diff --git a/kernel/fs/devfs.h b/kernel/fs/devfs.h index 166fd7c..3d39043 100644 --- a/kernel/fs/devfs.h +++ b/kernel/fs/devfs.h @@ -8,8 +8,7 @@ #ifndef __HOS_DEVFS__ #define __HOS_DEVFS__ __HOS_DEVFS__ -#include "Device.h" -#include "DeviceFolder.h" +#include "lang/string.h" void devfs_init(string mountPoint); diff --git a/kernel/fs/vfs.cpp b/kernel/fs/vfs.cpp index 88fa58f..a4ef2d4 100644 --- a/kernel/fs/vfs.cpp +++ b/kernel/fs/vfs.cpp @@ -1,7 +1,8 @@ -// vfs.c + +// vfs.cpp // Author: Josh Holtrop // Date: 03/11/04 -// Modified: 03/16/04 +// Modified: 04/16/04 #include "hos_defines.h" #include "vfs.h" @@ -12,18 +13,43 @@ #include "lang/string.h" #include "devfs.h" #include "kio.h" -//#include "DeviceFolder.h" +#include "Mount.h" -//LinkedList *mntList; +LinkedList *mounts; void vfs_init() { - //mntList = new LinkedList; - - devfs_init("/dev"); + mounts = new LinkedList; + } +void list() +{ + LinkedList::iterator it = mounts->begin(); + while (it != mounts->end()) + { + printf("%s\t%s\n", (*it).device.data(), (*it).mountPoint.data()); + ++it; + } +} + + +int vfs_mount(string device, string mountPoint) +{ + Mount mount(device, mountPoint); + LinkedList::iterator it = mounts->begin(); + int i = 0; + while (it != mounts->end() && (*it).mountPoint <= mount.mountPoint) + { + if (*it == mount) + return 1; //device already mounted or mount point already taken + i++; + ++it; + } + mounts->insert(i, mount); + return 0; +} diff --git a/kernel/fs/vfs.h b/kernel/fs/vfs.h index 851afff..60a1adc 100644 --- a/kernel/fs/vfs.h +++ b/kernel/fs/vfs.h @@ -1,14 +1,18 @@ + // vfs.h // Author: Josh Holtrop // Date: 03/11/04 -// Modified: 05/21/04 +// Modified: 06/16/04 #ifndef __HOS_VFS__ #define __HOS_VFS__ __HOS_VFS__ #include "hos_defines.h" +#include "lang/string.h" void vfs_init(); +int vfs_mount(string device, string mountPoint); +void list(); #endif diff --git a/kernel/kernel.cpp b/kernel/kernel.cpp index f99d571..ad48196 100644 --- a/kernel/kernel.cpp +++ b/kernel/kernel.cpp @@ -19,7 +19,8 @@ #include "sys/pic.h" //Programmable Interrupt Controller functions #include "sys/rtc.h" //Real Time Clock functions #include "video/video.h" //video functions -#include "fs/vfs.h" +#include "fs/vfs.h" //Virtual File System layer +#include "fs/devfs.h" //Device filesystem extern "C" { @@ -69,6 +70,8 @@ void k_init() printf("%b/%b/%b %b:%b:%b\n", rtc_readMonth(), rtc_readDay(), rtc_readYear(), rtc_readHour(), rtc_readMinute(), rtc_readSecond()); vfs_init(); + devfs_init("/dev"); + list(); printf("Done.\n"); diff --git a/kernel/lst/LDout.doc b/kernel/lst/LDout.doc index de2bf6b..d8f76be 100644 --- a/kernel/lst/LDout.doc +++ b/kernel/lst/LDout.doc @@ -7,377 +7,373 @@ Name Origin Length Attributes Linker script and memory map -.text 0x00000000c0106000 0x6000 +.text 0x00000000c0106000 0x5000 0x00000000c0106000 code = . 0x00000000c0106000 _code = . 0x00000000c0106000 __code = . *(.text) .text 0x00000000c0106000 0x384 ks.o 0x00000000c0106000 _start - .text 0x00000000c0106384 0x523 kernel.o + .text 0x00000000c0106384 0x55b kernel.o 0x00000000c0106384 _k_init - 0x00000000c010665c _isr - *fill* 0x00000000c01068a7 0x1 00 - .text 0x00000000c01068a8 0x308 asmfuncs.o - 0x00000000c01068c6 _read_cr3 - 0x00000000c01068ca _strcmp - 0x00000000c01069d9 _puts - 0x00000000c0106960 _memsetd - 0x00000000c010698e _invlpg_ - 0x00000000c01069f8 _putDecu - 0x00000000c010691c _memcpyd - 0x00000000c0106905 _memcpy - 0x00000000c0106933 _memset - 0x00000000c01068c2 _read_cr2 - 0x00000000c0106996 _writeCursorPosition - 0x00000000c0106949 _memsetw - 0x00000000c0106ac0 _putDec - 0x00000000c01068f0 _strcpy - 0x00000000c0106976 _strlen - 0x00000000c01069bc _getCursorPosition - 0x00000000c01068a8 _write_cr0 - 0x00000000c01068b7 _write_cr3 - 0x00000000c01068b3 _read_cr0 - .text 0x00000000c0106bb0 0x69a keyboard.o - 0x00000000c01070e4 _kbdGetKey - 0x00000000c010717a _kbd_resetLEDs - 0x00000000c0106bb0 _isr_keyboard - 0x00000000c0107136 _kbdWaitKey - *fill* 0x00000000c010724a 0x2 00 - .text 0x00000000c010724c 0x665 kio.o - 0x00000000c01077fc _kio_drawConsoleChar - 0x00000000c01073b6 _putc - 0x00000000c0107602 _kio_console_cls - 0x00000000c01074f2 _putHex - 0x00000000c010788a _kio_writeCursorPosition - 0x00000000c010759e _kio_console_scroll - 0x00000000c010765c _kio_drawConsole - 0x00000000c0107880 _kio_getCursorPosition - 0x00000000c010724c _kio_init - 0x00000000c0107276 _printf - 0x00000000c0107566 _kio_putBCD - *fill* 0x00000000c01078b1 0x3 00 - .text 0x00000000c01078b4 0x350 mm.o - 0x00000000c01078b4 __Z7mm_initv - 0x00000000c0107a96 __Z8mm_pfreej - 0x00000000c0107a58 __Z9mm_pfreenjj - 0x00000000c0107bf0 __Z14mm_getTotalMemv - 0x00000000c0107ae0 __Z9mm_pallocv - 0x00000000c0107b88 __Z10mm_freememv - 0x00000000c0107bfa __Z15mm_getTotalMegsv - .text 0x00000000c0107c04 0x201 mouse.o - 0x00000000c0107c04 _mouse_init - 0x00000000c0107cae _isr_mouse - *fill* 0x00000000c0107e05 0x3 00 - .text 0x00000000c0107e08 0x8f stdfont.o - 0x00000000c0107e68 __Z17stdfont_getBitmapj - 0x00000000c0107e08 __Z20stdfont_getFontWidthj - 0x00000000c0107e38 __Z21stdfont_getFontHeightj - *fill* 0x00000000c0107e97 0x1 00 - .text 0x00000000c0107e98 0x669 video.o - 0x00000000c0108378 __Z13video_psetp32ij - 0x00000000c010818c __Z10video_vertiiij - 0x00000000c0108394 __Z15video_psetpnullij - 0x00000000c0108070 __Z11video_horiziiij - 0x00000000c01083aa __Z15video_getHeightv - 0x00000000c01083ca __Z20video_getPhysBasePtrv - 0x00000000c0107e98 __Z10video_initv - 0x00000000c0108244 __Z10video_rectiiiij - 0x00000000c01083de __Z10video_lineiiiij - 0x00000000c010839a __Z14video_getWidthv - 0x00000000c01083ba __Z21video_getBitsPerPixelv - 0x00000000c0108170 __Z11video_psetiij - 0x00000000c01082e4 __Z13video_psetp16ij - 0x00000000c010829c __Z11video_rectfiiiij - 0x00000000c0108118 __Z10video_psetiij - 0x00000000c010832a __Z13video_psetp24ij - 0x00000000c0107f8a __Z16video_renderChariiiijij - 0x00000000c01083d4 __Z10video_Modev - *fill* 0x00000000c0108501 0x3 00 - .text 0x00000000c0108504 0x7d5 vmm.o - 0x00000000c0108aaa __Z21vmm_addHeapEntryBlockv - 0x00000000c0108b6c __Z20vmm_getLastHeapEntryv - 0x00000000c01088cc __Z21vmm_coalesceHeapEntryP9HeapEntry - 0x00000000c0108c9e __Z22vmm_getHeapEntryByBasej - 0x00000000c010881e __Z16vmm_getFreeChunkj - 0x00000000c0108c54 __Z4freePv - 0x00000000c0108996 __Z12vmm_moreCorej - 0x00000000c01087aa __Z6mallocj - 0x00000000c0108c1c __Z19vmm_heapEntriesLeftv - 0x00000000c0108504 __Z8vmm_initv - 0x00000000c0108b9c __Z25vmm_getFirstHoleHeapEntryj - 0x00000000c01085ac __Z12vmm_heb_initP14HeapEntryBlock - 0x00000000c0108a8e __Z17vmm_nextHeapEntryv - 0x00000000c0108628 __Z8vmm_map1jj - 0x00000000c0108700 __Z8vmm_mapnjjj - 0x00000000c010877c __Z10vmm_unmapnjj - 0x00000000c010873a __Z10vmm_unmap1j - 0x00000000c0108be2 __Z27vmm_getFirstUnusedHeapEntryv - *fill* 0x00000000c0108cd9 0x3 00 - .text 0x00000000c0108cdc 0x269 rtc.o - 0x00000000c0108d06 __Z13rtc_readMonthv - 0x00000000c0108edc __Z11rtc_setHourh - 0x00000000c0108cdc __Z11rtc_readDayv - 0x00000000c0108e0c __Z12rtc_setMonthh - 0x00000000c0108ea8 __Z13rtc_setMinuteh - 0x00000000c0108dd8 __Z10rtc_setDayh - 0x00000000c0108dae __Z12rtc_readHourv - 0x00000000c0108d30 __Z12rtc_readYearv - 0x00000000c0108d5a __Z14rtc_readSecondv - 0x00000000c0108e40 __Z11rtc_setYearh - 0x00000000c0108d84 __Z14rtc_readMinutev - 0x00000000c0108e74 __Z13rtc_setSecondh - *fill* 0x00000000c0108f45 0x3 00 - .text 0x00000000c0108f48 0x121 pic.o - 0x00000000c0108f48 __Z9pic_remapii - *fill* 0x00000000c0109069 0x3 00 - .text 0x00000000c010906c 0x15d cstring.o - 0x00000000c0109094 __Z12string_splitPcc - 0x00000000c010906c __Z6strcatPcPKc - 0x00000000c01090f2 __Z14string_advancePc - 0x00000000c010914e __Z5ucasePc - 0x00000000c010910c __Z5rtrimPc - 0x00000000c010918c __Z5lcasePc - *fill* 0x00000000c01091c9 0x3 00 - .text 0x00000000c01091cc 0xed9 string.o - 0x00000000c01098da __ZN6stringC1ERKS_S1_ - 0x00000000c01096ae __ZN6stringmIEPKc - 0x00000000c010935c __ZN6stringC1EPKc - 0x00000000c0109c54 __ZN6stringC2EcRKS_ - 0x00000000c01099d4 __ZN6stringC1ERKS_PKc - 0x00000000c010926c __ZN6stringC2ERKS_ - 0x00000000c01093b0 __ZN6stringaSERKS_ - 0x00000000c0109308 __ZN6stringC2EPKc - 0x00000000c010a01a __ZNK6stringleEPKc - 0x00000000c0109fd6 __ZNK6stringleERKS_ - 0x00000000c01091cc __ZN6stringC2Ev - 0x00000000c0109550 __ZN6stringpLEPKc - 0x00000000c0109864 __ZN6stringC2ERKS_S1_ - 0x00000000c0109d42 __ZN6stringixEj - 0x00000000c0109b6c __ZN6stringC2ERKS_c - 0x00000000c0109498 __ZNK6string4dataEv - 0x00000000c0109be0 __ZN6stringC1ERKS_c - 0x00000000c0109cb4 __ZN6stringC1EcRKS_ - 0x00000000c0109f7e __ZNK6stringgtEPKc - 0x00000000c0109d14 __ZNK6stringixEj - 0x00000000c010924c __ZN6stringD1Ev - 0x00000000c0109eda __ZNK6stringgtERKS_ - 0x00000000c0109a58 __ZN6stringC2EPKcRKS_ - 0x00000000c010960c __ZN6stringmIERKS_ - 0x00000000c0109dd8 __ZNK6stringeqEPKc - 0x00000000c010922c __ZN6stringD2Ev - 0x00000000c0109e4a __ZNK6stringneERKS_ - 0x00000000c01094a2 __ZNK6string4sizeEv - 0x00000000c010a060 __ZNK6stringgeEPKc - 0x00000000c0109950 __ZN6stringC2ERKS_PKc - 0x00000000c0109ff8 __ZNK6stringgeERKS_ - 0x00000000c01097f4 __ZN6stringmIEc - 0x00000000c01092ba __ZN6stringC1ERKS_ - 0x00000000c0109e8e __ZNK6stringltERKS_ - 0x00000000c0109e6c __ZNK6stringneEPKc - 0x00000000c0109ae2 __ZN6stringC1EPKcRKS_ - 0x00000000c0109d70 __ZNK6stringeqERKS_ - 0x00000000c0109f26 __ZNK6stringltEPKc - 0x00000000c0109770 __ZN6stringpLEc - 0x00000000c01094ae __ZN6stringpLERKS_ - 0x00000000c0109420 __ZN6stringaSEPKc - 0x00000000c01091fc __ZN6stringC1Ev - *fill* 0x00000000c010a0a5 0x3 00 - .text 0x00000000c010a0a8 0xe5 cmos.o - 0x00000000c010a100 __Z11cmos_gethd0v - 0x00000000c010a0a8 __Z11cmos_getfd0v - 0x00000000c010a0d4 __Z11cmos_getfd1v - 0x00000000c010a12c __Z11cmos_gethd1v - *fill* 0x00000000c010a18d 0x3 00 - .text 0x00000000c010a190 0x58 hos_defines.o - 0x00000000c010a1bc __ZdlPv - 0x00000000c010a1a6 __Znaj - 0x00000000c010a190 __Znwj - 0x00000000c010a1d2 __ZdaPv - .text 0x00000000c010a1e8 0x3a vfs.o - 0x00000000c010a1e8 __Z8vfs_initv - *fill* 0x00000000c010a222 0x2 00 - .text 0x00000000c010a224 0x20d devfs.o - 0x00000000c010a224 __Z10devfs_init6string - *fill* 0x00000000c010a431 0x3 00 - .text 0x00000000c010a434 0x6e7 Device.o - 0x00000000c010a72c __ZN6DeviceD2Ev - 0x00000000c010a798 __ZN6DeviceD1Ev - 0x00000000c010a4e4 __ZN6DeviceC2E6string - 0x00000000c010a9e4 __ZN6DeviceaSERKS_ - 0x00000000c010a678 __ZN6DeviceC1E6stringjjjjct - 0x00000000c010a804 __ZN6DeviceC2ERKS_ - 0x00000000c010a8f4 __ZN6DeviceC1ERKS_ - 0x00000000c010a48c __ZN6DeviceC1Ev - 0x00000000c010a434 __ZN6DeviceC2Ev - 0x00000000c010a554 __ZN6DeviceC1E6string - 0x00000000c010aae2 __ZN6Device7setLinkE6string - 0x00000000c010a5c4 __ZN6DeviceC2E6stringjjjjct - *fill* 0x00000000c010ab1b 0x1 00 - .text 0x00000000c010ab1c 0x572 DeviceFolder.o - 0x00000000c010b078 __ZN12DeviceFolder4sizeEv - 0x00000000c010ad2c __ZN12DeviceFolderC2Ev - 0x00000000c010ad42 __ZN12DeviceFolderC1Ev - 0x00000000c010ae74 __ZN12DeviceFolder5mkdirE6stringjjt - 0x00000000c010afd2 __ZN12DeviceFolder5mknodE6stringjjjjct - 0x00000000c010ad58 __ZN12DeviceFolder9addDeviceE6Device - 0x00000000c010af10 __ZN12DeviceFolder6mklinkE6stringjjS0_ - 0x00000000c010ab1c __ZN12DeviceFolder2lsEv - 0x00000000c010c000 . = ALIGN (0x1000) - *fill* 0x00000000c010b08e 0x80b237400000f72 00 + 0x00000000c0106694 _isr + *fill* 0x00000000c01068df 0x1 00 + .text 0x00000000c01068e0 0x308 asmfuncs.o + 0x00000000c01068fe _read_cr3 + 0x00000000c0106902 _strcmp + 0x00000000c0106a11 _puts + 0x00000000c0106998 _memsetd + 0x00000000c01069c6 _invlpg_ + 0x00000000c0106a30 _putDecu + 0x00000000c0106954 _memcpyd + 0x00000000c010693d _memcpy + 0x00000000c010696b _memset + 0x00000000c01068fa _read_cr2 + 0x00000000c01069ce _writeCursorPosition + 0x00000000c0106981 _memsetw + 0x00000000c0106af8 _putDec + 0x00000000c0106928 _strcpy + 0x00000000c01069ae _strlen + 0x00000000c01069f4 _getCursorPosition + 0x00000000c01068e0 _write_cr0 + 0x00000000c01068ef _write_cr3 + 0x00000000c01068eb _read_cr0 + .text 0x00000000c0106be8 0x69a keyboard.o + 0x00000000c010711c _kbdGetKey + 0x00000000c01071b2 _kbd_resetLEDs + 0x00000000c0106be8 _isr_keyboard + 0x00000000c010716e _kbdWaitKey + *fill* 0x00000000c0107282 0x2 00 + .text 0x00000000c0107284 0x665 kio.o + 0x00000000c0107834 _kio_drawConsoleChar + 0x00000000c01073ee _putc + 0x00000000c010763a _kio_console_cls + 0x00000000c010752a _putHex + 0x00000000c01078c2 _kio_writeCursorPosition + 0x00000000c01075d6 _kio_console_scroll + 0x00000000c0107694 _kio_drawConsole + 0x00000000c01078b8 _kio_getCursorPosition + 0x00000000c0107284 _kio_init + 0x00000000c01072ae _printf + 0x00000000c010759e _kio_putBCD + *fill* 0x00000000c01078e9 0x3 00 + .text 0x00000000c01078ec 0x350 mm.o + 0x00000000c01078ec __Z7mm_initv + 0x00000000c0107ace __Z8mm_pfreej + 0x00000000c0107a90 __Z9mm_pfreenjj + 0x00000000c0107c28 __Z14mm_getTotalMemv + 0x00000000c0107b18 __Z9mm_pallocv + 0x00000000c0107bc0 __Z10mm_freememv + 0x00000000c0107c32 __Z15mm_getTotalMegsv + .text 0x00000000c0107c3c 0x201 mouse.o + 0x00000000c0107c3c _mouse_init + 0x00000000c0107ce6 _isr_mouse + *fill* 0x00000000c0107e3d 0x3 00 + .text 0x00000000c0107e40 0x8f stdfont.o + 0x00000000c0107ea0 __Z17stdfont_getBitmapj + 0x00000000c0107e40 __Z20stdfont_getFontWidthj + 0x00000000c0107e70 __Z21stdfont_getFontHeightj + *fill* 0x00000000c0107ecf 0x1 00 + .text 0x00000000c0107ed0 0x669 video.o + 0x00000000c01083b0 __Z13video_psetp32ij + 0x00000000c01081c4 __Z10video_vertiiij + 0x00000000c01083cc __Z15video_psetpnullij + 0x00000000c01080a8 __Z11video_horiziiij + 0x00000000c01083e2 __Z15video_getHeightv + 0x00000000c0108402 __Z20video_getPhysBasePtrv + 0x00000000c0107ed0 __Z10video_initv + 0x00000000c010827c __Z10video_rectiiiij + 0x00000000c0108416 __Z10video_lineiiiij + 0x00000000c01083d2 __Z14video_getWidthv + 0x00000000c01083f2 __Z21video_getBitsPerPixelv + 0x00000000c01081a8 __Z11video_psetiij + 0x00000000c010831c __Z13video_psetp16ij + 0x00000000c01082d4 __Z11video_rectfiiiij + 0x00000000c0108150 __Z10video_psetiij + 0x00000000c0108362 __Z13video_psetp24ij + 0x00000000c0107fc2 __Z16video_renderChariiiijij + 0x00000000c010840c __Z10video_Modev + *fill* 0x00000000c0108539 0x3 00 + .text 0x00000000c010853c 0x8b8 vmm.o + 0x00000000c0108ae2 __Z21vmm_addHeapEntryBlockv + 0x00000000c0108ba4 __Z20vmm_getLastHeapEntryv + 0x00000000c0108904 __Z21vmm_coalesceHeapEntryP9HeapEntry + 0x00000000c0108d12 __Z7reallocPvj + 0x00000000c0108cd6 __Z22vmm_getHeapEntryByBasej + 0x00000000c0108856 __Z16vmm_getFreeChunkj + 0x00000000c0108c8c __Z4freePv + 0x00000000c01089ce __Z12vmm_moreCorej + 0x00000000c01087e2 __Z6mallocj + 0x00000000c0108c54 __Z19vmm_heapEntriesLeftv + 0x00000000c010853c __Z8vmm_initv + 0x00000000c0108da6 __Z6callocjj + 0x00000000c0108bd4 __Z25vmm_getFirstHoleHeapEntryj + 0x00000000c01085e4 __Z12vmm_heb_initP14HeapEntryBlock + 0x00000000c0108ac6 __Z17vmm_nextHeapEntryv + 0x00000000c0108660 __Z8vmm_map1jj + 0x00000000c0108738 __Z8vmm_mapnjjj + 0x00000000c01087b4 __Z10vmm_unmapnjj + 0x00000000c0108772 __Z10vmm_unmap1j + 0x00000000c0108c1a __Z27vmm_getFirstUnusedHeapEntryv + .text 0x00000000c0108df4 0x269 rtc.o + 0x00000000c0108e1e __Z13rtc_readMonthv + 0x00000000c0108ff4 __Z11rtc_setHourh + 0x00000000c0108df4 __Z11rtc_readDayv + 0x00000000c0108f24 __Z12rtc_setMonthh + 0x00000000c0108fc0 __Z13rtc_setMinuteh + 0x00000000c0108ef0 __Z10rtc_setDayh + 0x00000000c0108ec6 __Z12rtc_readHourv + 0x00000000c0108e48 __Z12rtc_readYearv + 0x00000000c0108e72 __Z14rtc_readSecondv + 0x00000000c0108f58 __Z11rtc_setYearh + 0x00000000c0108e9c __Z14rtc_readMinutev + 0x00000000c0108f8c __Z13rtc_setSecondh + *fill* 0x00000000c010905d 0x3 00 + .text 0x00000000c0109060 0x121 pic.o + 0x00000000c0109060 __Z9pic_remapii + *fill* 0x00000000c0109181 0x3 00 + .text 0x00000000c0109184 0x15d cstring.o + 0x00000000c01091ac __Z12string_splitPcc + 0x00000000c0109184 __Z6strcatPcPKc + 0x00000000c010920a __Z14string_advancePc + 0x00000000c0109266 __Z5ucasePc + 0x00000000c0109224 __Z5rtrimPc + 0x00000000c01092a4 __Z5lcasePc + *fill* 0x00000000c01092e1 0x3 00 + .text 0x00000000c01092e4 0xed9 string.o + 0x00000000c01099f2 __ZN6stringC1ERKS_S1_ + 0x00000000c01097c6 __ZN6stringmIEPKc + 0x00000000c0109474 __ZN6stringC1EPKc + 0x00000000c0109d6c __ZN6stringC2EcRKS_ + 0x00000000c0109aec __ZN6stringC1ERKS_PKc + 0x00000000c0109384 __ZN6stringC2ERKS_ + 0x00000000c01094c8 __ZN6stringaSERKS_ + 0x00000000c0109420 __ZN6stringC2EPKc + 0x00000000c010a132 __ZNK6stringleEPKc + 0x00000000c010a0ee __ZNK6stringleERKS_ + 0x00000000c01092e4 __ZN6stringC2Ev + 0x00000000c0109668 __ZN6stringpLEPKc + 0x00000000c010997c __ZN6stringC2ERKS_S1_ + 0x00000000c0109e5a __ZN6stringixEj + 0x00000000c0109c84 __ZN6stringC2ERKS_c + 0x00000000c01095b0 __ZNK6string4dataEv + 0x00000000c0109cf8 __ZN6stringC1ERKS_c + 0x00000000c0109dcc __ZN6stringC1EcRKS_ + 0x00000000c010a096 __ZNK6stringgtEPKc + 0x00000000c0109e2c __ZNK6stringixEj + 0x00000000c0109364 __ZN6stringD1Ev + 0x00000000c0109ff2 __ZNK6stringgtERKS_ + 0x00000000c0109b70 __ZN6stringC2EPKcRKS_ + 0x00000000c0109724 __ZN6stringmIERKS_ + 0x00000000c0109ef0 __ZNK6stringeqEPKc + 0x00000000c0109344 __ZN6stringD2Ev + 0x00000000c0109f62 __ZNK6stringneERKS_ + 0x00000000c01095ba __ZNK6string4sizeEv + 0x00000000c010a178 __ZNK6stringgeEPKc + 0x00000000c0109a68 __ZN6stringC2ERKS_PKc + 0x00000000c010a110 __ZNK6stringgeERKS_ + 0x00000000c010990c __ZN6stringmIEc + 0x00000000c01093d2 __ZN6stringC1ERKS_ + 0x00000000c0109fa6 __ZNK6stringltERKS_ + 0x00000000c0109f84 __ZNK6stringneEPKc + 0x00000000c0109bfa __ZN6stringC1EPKcRKS_ + 0x00000000c0109e88 __ZNK6stringeqERKS_ + 0x00000000c010a03e __ZNK6stringltEPKc + 0x00000000c0109888 __ZN6stringpLEc + 0x00000000c01095c6 __ZN6stringpLERKS_ + 0x00000000c0109538 __ZN6stringaSEPKc + 0x00000000c0109314 __ZN6stringC1Ev + *fill* 0x00000000c010a1bd 0x3 00 + .text 0x00000000c010a1c0 0xe5 cmos.o + 0x00000000c010a218 __Z11cmos_gethd0v + 0x00000000c010a1c0 __Z11cmos_getfd0v + 0x00000000c010a1ec __Z11cmos_getfd1v + 0x00000000c010a244 __Z11cmos_gethd1v + *fill* 0x00000000c010a2a5 0x3 00 + .text 0x00000000c010a2a8 0x58 hos_defines.o + 0x00000000c010a2d4 __ZdlPv + 0x00000000c010a2be __Znaj + 0x00000000c010a2a8 __Znwj + 0x00000000c010a2ea __ZdaPv + .text 0x00000000c010a300 0x24d vfs.o + 0x00000000c010a32e __Z4listv + 0x00000000c010a3d0 __Z9vfs_mount6stringS_ + 0x00000000c010a300 __Z8vfs_initv + *fill* 0x00000000c010a54d 0x3 00 + .text 0x00000000c010a550 0x2b7 devfs.o + 0x00000000c010a550 __Z10devfs_init6string + *fill* 0x00000000c010a807 0x1 00 + .text 0x00000000c010a808 0x145 Mount.o + 0x00000000c010a858 __ZN5MountC2E6stringS0_ + 0x00000000c010a8ac __ZN5MountC1E6stringS0_ + 0x00000000c010a900 __ZNK5MounteqERKS_ + 0x00000000c010a830 __ZN5MountC1Ev + 0x00000000c010a808 __ZN5MountC2Ev + 0x00000000c010b000 . = ALIGN (0x1000) + *fill* 0x00000000c010a94d 0x80b2310000006b3 00 -.gnu.linkonce.t._ZN10LinkedListI6DeviceE5beginEv - 0x00000000c010c000 0x27 - .gnu.linkonce.t._ZN10LinkedListI6DeviceE5beginEv - 0x00000000c010c000 0x27 DeviceFolder.o - 0x00000000c010c000 __ZN10LinkedListI6DeviceE5beginEv +.gnu.linkonce.t._ZN10LinkedListI5MountEC1Ev + 0x00000000c010b000 0x43 + .gnu.linkonce.t._ZN10LinkedListI5MountEC1Ev + 0x00000000c010b000 0x43 vfs.o + 0x00000000c010b000 __ZN10LinkedListI5MountEC1Ev -.gnu.linkonce.t._ZN10LinkedListI6DeviceE3endEv - 0x00000000c010c028 0x28 - .gnu.linkonce.t._ZN10LinkedListI6DeviceE3endEv - 0x00000000c010c028 0x28 DeviceFolder.o - 0x00000000c010c028 __ZN10LinkedListI6DeviceE3endEv +.gnu.linkonce.t._ZN10LinkedListI5MountE5beginEv + 0x00000000c010b044 0x27 + .gnu.linkonce.t._ZN10LinkedListI5MountE5beginEv + 0x00000000c010b044 0x27 vfs.o + 0x00000000c010b044 __ZN10LinkedListI5MountE5beginEv -.gnu.linkonce.t._ZNK10LinkedListI6DeviceE8iteratorneERKS2_ - 0x00000000c010c050 0x17 - .gnu.linkonce.t._ZNK10LinkedListI6DeviceE8iteratorneERKS2_ - 0x00000000c010c050 0x17 DeviceFolder.o - 0x00000000c010c050 __ZNK10LinkedListI6DeviceE8iteratorneERKS2_ +.gnu.linkonce.t._ZN10LinkedListI5MountE3endEv + 0x00000000c010b06c 0x28 + .gnu.linkonce.t._ZN10LinkedListI5MountE3endEv + 0x00000000c010b06c 0x28 vfs.o + 0x00000000c010b06c __ZN10LinkedListI5MountE3endEv -.gnu.linkonce.t._ZN10LinkedListI6DeviceE8iteratordeEv - 0x00000000c010c068 0xa - .gnu.linkonce.t._ZN10LinkedListI6DeviceE8iteratordeEv - 0x00000000c010c068 0xa DeviceFolder.o - 0x00000000c010c068 __ZN10LinkedListI6DeviceE8iteratordeEv +.gnu.linkonce.t._ZNK10LinkedListI5MountE8iteratorneERKS2_ + 0x00000000c010b094 0x17 + .gnu.linkonce.t._ZNK10LinkedListI5MountE8iteratorneERKS2_ + 0x00000000c010b094 0x17 vfs.o + 0x00000000c010b094 __ZNK10LinkedListI5MountE8iteratorneERKS2_ -.gnu.linkonce.t._ZN10LinkedListI6DeviceE8iteratorppEi - 0x00000000c010c072 0x12 - .gnu.linkonce.t._ZN10LinkedListI6DeviceE8iteratorppEi - 0x00000000c010c072 0x12 DeviceFolder.o - 0x00000000c010c072 __ZN10LinkedListI6DeviceE8iteratorppEi +.gnu.linkonce.t._ZN10LinkedListI5MountE8iteratordeEv + 0x00000000c010b0ac 0xa + .gnu.linkonce.t._ZN10LinkedListI5MountE8iteratordeEv + 0x00000000c010b0ac 0xa vfs.o + 0x00000000c010b0ac __ZN10LinkedListI5MountE8iteratordeEv -.gnu.linkonce.t._ZN10LinkedListI6DeviceEC1Ev - 0x00000000c010c084 0x43 - .gnu.linkonce.t._ZN10LinkedListI6DeviceEC1Ev - 0x00000000c010c084 0x43 DeviceFolder.o - 0x00000000c010c084 __ZN10LinkedListI6DeviceEC1Ev +.gnu.linkonce.t._ZN10LinkedListI5MountE8iteratorppEv + 0x00000000c010b0b6 0x12 + .gnu.linkonce.t._ZN10LinkedListI5MountE8iteratorppEv + 0x00000000c010b0b6 0x12 vfs.o + 0x00000000c010b0b6 __ZN10LinkedListI5MountE8iteratorppEv -.gnu.linkonce.t._ZN10LinkedListI6DeviceE6insertEiS0_ - 0x00000000c010c0c8 0x101 - .gnu.linkonce.t._ZN10LinkedListI6DeviceE6insertEiS0_ - 0x00000000c010c0c8 0x101 DeviceFolder.o - 0x00000000c010c0c8 __ZN10LinkedListI6DeviceE6insertEiS0_ +.gnu.linkonce.t._ZN10LinkedListI5MountE6insertEiS0_ + 0x00000000c010b0c8 0x101 + .gnu.linkonce.t._ZN10LinkedListI5MountE6insertEiS0_ + 0x00000000c010b0c8 0x101 vfs.o + 0x00000000c010b0c8 __ZN10LinkedListI5MountE6insertEiS0_ -.gnu.linkonce.t._ZN10LinkedListI6DeviceE4sizeEv - 0x00000000c010c1ca 0xb - .gnu.linkonce.t._ZN10LinkedListI6DeviceE4sizeEv - 0x00000000c010c1ca 0xb DeviceFolder.o - 0x00000000c010c1ca __ZN10LinkedListI6DeviceE4sizeEv +.gnu.linkonce.t._ZN10LinkedListI5MountE10LinkedNodeC1Ev + 0x00000000c010b1ca 0x2a + .gnu.linkonce.t._ZN10LinkedListI5MountE10LinkedNodeC1Ev + 0x00000000c010b1ca 0x2a vfs.o + 0x00000000c010b1ca __ZN10LinkedListI5MountE10LinkedNodeC1Ev -.gnu.linkonce.t._ZN10LinkedListI6DeviceE8iteratorC1EPNS1_10LinkedNodeE - 0x00000000c010c1d6 0xd - .gnu.linkonce.t._ZN10LinkedListI6DeviceE8iteratorC1EPNS1_10LinkedNodeE - 0x00000000c010c1d6 0xd DeviceFolder.o - 0x00000000c010c1d6 __ZN10LinkedListI6DeviceE8iteratorC1EPNS1_10LinkedNodeE +.gnu.linkonce.t._ZN10LinkedListI5MountE8iteratorC1EPNS1_10LinkedNodeE + 0x00000000c010b1f4 0xd + .gnu.linkonce.t._ZN10LinkedListI5MountE8iteratorC1EPNS1_10LinkedNodeE + 0x00000000c010b1f4 0xd vfs.o + 0x00000000c010b1f4 __ZN10LinkedListI5MountE8iteratorC1EPNS1_10LinkedNodeE -.gnu.linkonce.t._ZN10LinkedListI6DeviceE10LinkedNodeC1Ev - 0x00000000c010c1e4 0x2a - .gnu.linkonce.t._ZN10LinkedListI6DeviceE10LinkedNodeC1Ev - 0x00000000c010c1e4 0x2a DeviceFolder.o - 0x00000000c010c1e4 __ZN10LinkedListI6DeviceE10LinkedNodeC1Ev +.gnu.linkonce.t._ZN10LinkedListI5MountE9push_backES0_ + 0x00000000c010b202 0x82 + .gnu.linkonce.t._ZN10LinkedListI5MountE9push_backES0_ + 0x00000000c010b202 0x82 vfs.o + 0x00000000c010b202 __ZN10LinkedListI5MountE9push_backES0_ -.gnu.linkonce.t._ZN10LinkedListI6DeviceE9push_backES0_ - 0x00000000c010c20e 0x82 - .gnu.linkonce.t._ZN10LinkedListI6DeviceE9push_backES0_ - 0x00000000c010c20e 0x82 DeviceFolder.o - 0x00000000c010c20e __ZN10LinkedListI6DeviceE9push_backES0_ +.gnu.linkonce.t._ZN10LinkedListI5MountE10LinkedNodeC1ES0_ + 0x00000000c010b284 0x40 + .gnu.linkonce.t._ZN10LinkedListI5MountE10LinkedNodeC1ES0_ + 0x00000000c010b284 0x40 vfs.o + 0x00000000c010b284 __ZN10LinkedListI5MountE10LinkedNodeC1ES0_ -.gnu.linkonce.t._ZN10LinkedListI6DeviceE10LinkedNodeC1ES0_ - 0x00000000c010c290 0x40 - .gnu.linkonce.t._ZN10LinkedListI6DeviceE10LinkedNodeC1ES0_ - 0x00000000c010c290 0x40 DeviceFolder.o - 0x00000000c010c290 __ZN10LinkedListI6DeviceE10LinkedNodeC1ES0_ +.gnu.linkonce.t._ZN5MountaSERKS_ + 0x00000000c010b2c4 0x4d + .gnu.linkonce.t._ZN5MountaSERKS_ + 0x00000000c010b2c4 0x4d vfs.o + 0x00000000c010b2c4 __ZN5MountaSERKS_ -.data 0x00000000c010c2d0 0xd30 - 0x00000000c010c2d0 data = . - 0x00000000c010c2d0 _data = . - 0x00000000c010c2d0 __data = . +.gnu.linkonce.t._ZN5MountC1ERKS_ + 0x00000000c010b312 0x4a + .gnu.linkonce.t._ZN5MountC1ERKS_ + 0x00000000c010b312 0x4a vfs.o + 0x00000000c010b312 __ZN5MountC1ERKS_ + +.gnu.linkonce.t._ZN5MountD1Ev + 0x00000000c010b35c 0x28 + .gnu.linkonce.t._ZN5MountD1Ev + 0x00000000c010b35c 0x28 vfs.o + 0x00000000c010b35c __ZN5MountD1Ev + +.data 0x00000000c010b388 0xc78 + 0x00000000c010b388 data = . + 0x00000000c010b388 _data = . + 0x00000000c010b388 __data = . *(.data) - .data 0x00000000c010c2d0 0x18 stdfont.o - 0x00000000c010c2d0 _fonts - .data 0x00000000c010c2e8 0x10 video.o - 0x00000000c010c2e8 _vid_ptr16 - 0x00000000c010c2f4 _video_psetp - 0x00000000c010c2f0 _vid_ptr32 - 0x00000000c010c2ec _vid_ptr24 - .data 0x00000000c010c2f8 0x4 vmm.o - 0x00000000c010c2f8 _firstHeapEntry - 0x00000000c010d000 . = ALIGN (0x1000) - *fill* 0x00000000c010c2fc 0x812a70800000d04 00 + .data 0x00000000c010b388 0x18 stdfont.o + 0x00000000c010b388 _fonts + .data 0x00000000c010b3a0 0x10 video.o + 0x00000000c010b3a0 _vid_ptr16 + 0x00000000c010b3ac _video_psetp + 0x00000000c010b3a8 _vid_ptr32 + 0x00000000c010b3a4 _vid_ptr24 + .data 0x00000000c010b3b0 0x4 vmm.o + 0x00000000c010b3b0 _firstHeapEntry + 0x00000000c010c000 . = ALIGN (0x1000) + *fill* 0x00000000c010b3b4 0x8116e3800000c4c 00 -.rodata 0x00000000c010d000 0x2000 - 0x00000000c010d000 rodata = . - 0x00000000c010d000 _rodata = . - 0x00000000c010d000 __rodata = . +.rodata 0x00000000c010c000 0x2000 + 0x00000000c010c000 rodata = . + 0x00000000c010c000 _rodata = . + 0x00000000c010c000 __rodata = . *(.rodata) - .rodata 0x00000000c010d000 0x141 kernel.o - *fill* 0x00000000c010d141 0x1f 00 - .rodata 0x00000000c010d160 0x141 keyboard.o - *fill* 0x00000000c010d2a1 0x3 00 - .rodata 0x00000000c010d2a4 0x1e4 kio.o - *fill* 0x00000000c010d488 0x18 00 - .rodata 0x00000000c010d4a0 0x1200 stdfont.o - .rodata 0x00000000c010e6a0 0x5 vfs.o - *fill* 0x00000000c010e6a5 0x1b 00 - .rodata 0x00000000c010e6c0 0xad devfs.o - .rodata 0x00000000c010e76d 0x33 DeviceFolder.o - 0x00000000c010f000 . = ALIGN (0x1000) - *fill* 0x00000000c010e7a0 0x812a77c00000860 00 + .rodata 0x00000000c010c000 0x141 kernel.o + *fill* 0x00000000c010c141 0x1f 00 + .rodata 0x00000000c010c160 0x141 keyboard.o + *fill* 0x00000000c010c2a1 0x3 00 + .rodata 0x00000000c010c2a4 0x1e4 kio.o + *fill* 0x00000000c010c488 0x18 00 + .rodata 0x00000000c010c4a0 0x1200 stdfont.o + .rodata 0x00000000c010d6a0 0x7 vfs.o + .rodata 0x00000000c010d6a7 0x6d devfs.o + 0x00000000c010e000 . = ALIGN (0x1000) + *fill* 0x00000000c010d714 0x8116e9c000008ec 00 -.bss 0x00000000c010f000 0x22000 - 0x00000000c010f000 bss = . - 0x00000000c010f000 _bss = . - 0x00000000c010f000 __bss = . +.bss 0x00000000c010e000 0x22000 + 0x00000000c010e000 bss = . + 0x00000000c010e000 _bss = . + 0x00000000c010e000 __bss = . *(.bss) - .bss 0x00000000c010f000 0x4 kernel.o - 0x00000000c010f000 _timer - *fill* 0x00000000c010f004 0x4 00 - *fill* 0x00000000c010f008 0x18 00 - .bss 0x00000000c010f020 0x12b keyboard.o - 0x00000000c010f040 _kbdBuffer - 0x00000000c010f148 _kbdExt - 0x00000000c010f021 _kbdAscii - 0x00000000c010f149 _kbdExt2 - 0x00000000c010f14a _ackReason - 0x00000000c010f140 _kbdBufferStart - 0x00000000c010f022 _kbdScan - 0x00000000c010f144 _kbdBufferLen - 0x00000000c010f020 _kbdFlags - *fill* 0x00000000c010f14b 0x15 00 - .bss 0x00000000c010f160 0xfc0 kio.o - 0x00000000c010f180 _console_memory - 0x00000000c010f160 _graphical - 0x00000000c010f164 _cursorPosition - .bss 0x00000000c0110120 0x20020 mm.o - 0x00000000c0110124 _mm_megabytes - 0x00000000c0110140 _page_bitmap - 0x00000000c0110120 _mm_totalmem - .bss 0x00000000c0130140 0x1c mouse.o - 0x00000000c0130144 _mouse_y - 0x00000000c0130148 _mouse_bytesRead - 0x00000000c0130140 _mouse_x - 0x00000000c013014c _mouse_inbuffer - *fill* 0x00000000c013015c 0x4 00 - .bss 0x00000000c0130160 0x104 video.o - 0x00000000c0130160 _video_mode - 0x00000000c0130260 _videoMode - .bss 0x00000000c0130264 0x4 devfs.o - 0x00000000c0130264 _dev - 0x00000000c0131000 . = ALIGN (0x1000) - *fill* 0x00000000c0130268 0x812a8e000000d98 00 - 0x00000000c0131000 end = . - 0x00000000c0131000 _end = . - 0x00000000c0131000 __end = . + .bss 0x00000000c010e000 0x4 kernel.o + 0x00000000c010e000 _timer + *fill* 0x00000000c010e004 0x4 00 + *fill* 0x00000000c010e008 0x18 00 + .bss 0x00000000c010e020 0x12b keyboard.o + 0x00000000c010e040 _kbdBuffer + 0x00000000c010e148 _kbdExt + 0x00000000c010e021 _kbdAscii + 0x00000000c010e149 _kbdExt2 + 0x00000000c010e14a _ackReason + 0x00000000c010e140 _kbdBufferStart + 0x00000000c010e022 _kbdScan + 0x00000000c010e144 _kbdBufferLen + 0x00000000c010e020 _kbdFlags + *fill* 0x00000000c010e14b 0x15 00 + .bss 0x00000000c010e160 0xfc0 kio.o + 0x00000000c010e180 _console_memory + 0x00000000c010e160 _graphical + 0x00000000c010e164 _cursorPosition + .bss 0x00000000c010f120 0x20020 mm.o + 0x00000000c010f124 _mm_megabytes + 0x00000000c010f140 _page_bitmap + 0x00000000c010f120 _mm_totalmem + .bss 0x00000000c012f140 0x1c mouse.o + 0x00000000c012f144 _mouse_y + 0x00000000c012f148 _mouse_bytesRead + 0x00000000c012f140 _mouse_x + 0x00000000c012f14c _mouse_inbuffer + *fill* 0x00000000c012f15c 0x4 00 + .bss 0x00000000c012f160 0x104 video.o + 0x00000000c012f160 _video_mode + 0x00000000c012f260 _videoMode + .bss 0x00000000c012f264 0x4 vfs.o + 0x00000000c012f264 _mounts + 0x00000000c0130000 . = ALIGN (0x1000) + *fill* 0x00000000c012f268 0x8116ff000000d98 00 + 0x00000000c0130000 end = . + 0x00000000c0130000 _end = . + 0x00000000c0130000 __end = . LOAD ks.o LOAD kernel.o LOAD asmfuncs.o @@ -398,14 +394,13 @@ LOAD cmos.o LOAD hos_defines.o LOAD vfs.o LOAD devfs.o -LOAD Device.o -LOAD DeviceFolder.o +LOAD Mount.o OUTPUT(kernel.bin binary) .note.GNU-stack 0x0000000000000000 0x0 -.comment 0x0000000000000000 0x3fc +.comment 0x0000000000000000 0x3c9 .comment 0x0000000000000000 0x33 kernel.o .comment 0x0000000000000033 0x33 fdc.o .comment 0x0000000000000066 0x33 keyboard.o @@ -424,5 +419,4 @@ OUTPUT(kernel.bin binary) .comment 0x00000000000002fd 0x33 hos_defines.o .comment 0x0000000000000330 0x33 vfs.o .comment 0x0000000000000363 0x33 devfs.o - .comment 0x0000000000000396 0x33 Device.o - .comment 0x00000000000003c9 0x33 DeviceFolder.o + .comment 0x0000000000000396 0x33 Mount.o diff --git a/readme.txt b/readme.txt index 95ea11a..cc9475f 100644 --- a/readme.txt +++ b/readme.txt @@ -14,9 +14,10 @@ Goals: (A = accomplished, P = in progress, T = todo) (P) VFS abstraction layer for a single file system (P) ram disk driver -(P) vfat file system support +(P) devfs file system driver -(T) devfs file system driver +(T) ext2 file system support +(T) vfat file system support (T) Multitasking support (T) Console Manager (T) HASH command shell @@ -24,7 +25,6 @@ Goals: (A = accomplished, P = in progress, T = todo) (T) Various other utilities/applications (T) Hard Drive (ATA) driver (T) cdrom (ATAPI) driver -(T) ext2/3 file system support Change Log