Max OS 0.3
Loading...
Searching...
No Matches
Todo List
File amiga_font.h
find source and add credit
File desktop.cpp

Make a border class

Draw a proper mouse cursor

Draw a background image

File ethernetframe.h
Make big endian helper functions and clairty (ie be_uint16_t etc)z
File eventHandler.h

Event doesnt need to be a class should be a struct

With moving to micro kernel this should be moved to a external lib as not needed

File fat32.h

BUG: Subdirectory seems to write to the disk this end but tools like fatcat complain the that the EOC isn't written (cluster 3037)

Implment: create/delete/rename files & directories

File font.cpp
Replace with a proper font format
File inputStream.h
Move tempalte implmentations to a cpp file
File ipc.cpp

Import scheduler is a circular dependency, need to fix

Shouldnt have to specify type in resource constructor

Member MaxOS::common::BlockingLock::acquire ()
Move the yielding logic into process/thread code so that it can be reused
Class MaxOS::common::Event< EventType >

deprecate, things that should fire events should have their own event firer class and things that connect to it, dont have a class per event

events should be made on stack and passed as references not pointers for better perf

Member MaxOS::common::Event< EventType >::Event (EventType type)
move to a c++ files
Member MaxOS::common::GraphicsContext::m_colour_pallet [256]
make const
Member MaxOS::common::GraphicsContext::put_pixel (uint32_t x, uint32_t y, uint32_t colour)
make them uint32_t
Member MaxOS::drivers::disk::IntegratedDriveElectronicsController::IntegratedDriveElectronicsController (hardwarecommunication::PCIDeviceDescriptor *device_descriptor)
Use the device descriptor to get the port base and add the devices dynamically
Member MaxOS::drivers::ethernet::AMD_AM79C973::activate () final
Re-implement this class
Member MaxOS::drivers::ethernet::AMD_AM79C973::AMD_AM79C973 (hardwarecommunication::PCIDeviceDescriptor *dev)
move all this to initilise()
Member MaxOS::drivers::ethernet::BufferDescriptor::flags2
enum this)
Member MaxOS::drivers::ethernet::MediaAccessControlAddress
make a MacAddress class and use mac_t
Member MaxOS::drivers::peripherals::KeyboardInterpreterEN_US::on_stream_read (uint8_t scan_code) final
Probably a better way to do this (investigate when adding more keyboard layouts)
Class MaxOS::drivers::peripherals::KeyboardState
Add functions like is_shift_pressed() and similar
Class MaxOS::filesystem::FileResource
Should this free the memory of the file when the resource is done??
Member MaxOS::filesystem::format::ext2::block_group_descriptor_t
Support updating directory_count when creating/deleting directories
Member MaxOS::filesystem::format::ext2::CreatorOS
Add MaxOS
Member MaxOS::filesystem::format::ext2::EntryType
Support more
Class MaxOS::filesystem::format::ext2::Ext2Volume
Free blocks
Member MaxOS::filesystem::format::ext2::Ext2Volume::ext2_lock
: remove public?)
Member MaxOS::filesystem::format::ext2::Ext2Volume::Ext2Volume (drivers::disk::Disk *disk, lba_t partition_offset)
Should lock per file and not expose volume lock
Member MaxOS::filesystem::format::ext2::InodeHandler::grow (size_t amount, bool flush=true)
Should this return size() instead?
Member MaxOS::filesystem::format::ext2::InodePermissionsDefaults
Document these values
Member MaxOS::filesystem::format::ext2::linux_os_2_t
HURD, MASIX
Member MaxOS::filesystem::format::Fat32File::write (common::buffer_t *data, size_t amount) final
When in userspace: save timestamps
Member MaxOS::filesystem::format::Fat32Volume::next_cluster (uint32_t cluster) const
The auto entry = uint32_t* '&' is weird, fix it
Member MaxOS::filesystem::format::Fat32Volume::set_next_cluster (uint32_t cluster, uint32_t next_cluster) const
when in userspace: For performance cache fat entirely, cache file data, cache cluster chains
Class MaxOS::filesystem::partition::MSDOSPartition
Abstract some of this into a base class and use it for GPT and other partition tables
Class MaxOS::gui::Desktop
It is not a good idea to hardcode the mouse into the desktop as a tablet or touch screen device won't have a mouse cursor
Member MaxOS::gui::Desktop::colour
: replace with image, make priv)
Member MaxOS::gui::Widget::resize (int32_t width, int32_t height)
Fix the invalidation so it only redraws the areas that need to be redrawn (right and bottom are always fully redrawn currently)
Class MaxOS::hardwarecommunication::AdvancedProgrammableInterruptController
Should either handle all Local APICs or none (only boot core right now, others accessed per core directly which is inconsistent)
Class MaxOS::hardwarecommunication::BaseAddressRegister
Should be a struct
Member MaxOS::hardwarecommunication::BaseAddressRegister::size
Document Size of the address space
Member MaxOS::hardwarecommunication::DeliveryMode
use this
Member MaxOS::hardwarecommunication::InterruptDescriptor::flags
substruct this)
Class MaxOS::hardwarecommunication::InterruptManager

Remove the max array of handler make vector, add static handlers for page faults and gpe. Make it so that multiple handlers can be registered for the same interrupt

Have a single stub so that we don't need to have 256 different functions for each interrupt

Member MaxOS::hardwarecommunication::madt_io_apic_t
Rename for consistency
Class MaxOS::hardwarecommunication::PCIDeviceDescriptor
Should be a struct aswell
Member MaxOS::hardwarecommunication::PCIDeviceDescriptor::get_type () const
See wiki for more types to add
Class MaxOS::memory::MemIO
Not used, delete?
Member MaxOS::memory::page_flags_t
: fix. this is stupid: Leave as enum not enum class for bitwise operations
Class MaxOS::memory::PhysicalMemoryManager
Global paging so dont have map in every process
Member MaxOS::memory::PhysicalMemoryManager::s_current_manager
Make private with getter, maybe make mapping static?
Member MaxOS::net::AddressResolutionProtocol::resolve (InternetProtocolAddress address) final
Should have a timeout in case the address cannot be resolved and avoid infinite loops
Member MaxOS::net::EthernetFrameHandler::data_received (uint8_t *data, uint32_t size) override
Future debugging me: the override is not being called in derived classes
Member MaxOS::net::InternetControlMessageProtocol::handle_internet_protocol_payload (net::InternetProtocolAddress src_ip_be, net::InternetProtocolAddress dst_ip_be, uint8_t *payload_data, uint32_t size) final

Reply to ping requests

Implement the rest of the ICMP messages

Member MaxOS::net::InternetProtocolAddress
: Make IPv4Address class and do ip_t
Member MaxOS::net::InternetProtocolHandler::handle_ethernetframe_payload (uint8_t *ethernetframe_payload, uint32_t size) override
Set the identifier when sending packets back
Member MaxOS::net::IPV4Header::flags_and_offset
: bitfield struct?
Member MaxOS::net::IPV4Header::protocol
: enum
Member MaxOS::net::IPV4Header::type_of_service
: enum
Member MaxOS::net::SubnetMask
: Make SubnetMask class and do subnetmask_t
Member MaxOS::net::TCPHeader::options
: make this a struct
Member MaxOS::net::TransmissionControlProtocolHandler::connect (const string &address)
Implement string parsing for address
Member MaxOS::net::TransmissionControlProtocolPort
: Make TCPPort class and do tcp_port_t
Member MaxOS::net::UserDatagramProtocolHandler::connect (const string &address)
Implement string parsing to extract IP and port
Member MaxOS::net::UserDatagramProtocolPort
: Make UDPPort class and do udp_port_t (or generic port that can be used for TCP and UDP)
Member MaxOS::processes::ELF64::is_valid () const
Add support for maxOS ABI
Member MaxOS::processes::ELF64::load ()
Error handling
Member MaxOS::processes::GlobalScheduler::balance ()
Implement
Member MaxOS::processes::GlobalScheduler::load_multiboot_elfs (system::Multiboot *multiboot)
Handle passing multiple args to the process
Member MaxOS::processes::Scheduler::schedule_next (system::cpu_status_t *status)
Remove by reference where possible
Member MaxOS::runtime::__stack_chk_guard
make random at runtime)
Class MaxOS::runtime::KASanHandler
finish when cbf
Member MaxOS::system::Core::init_tss ()
Implement IO bitmap when adding userspace drivers
Member MaxOS::system::Core::wake_up (CPU *cpu)
Should handle core fails and not delay once we are in c++
Member MaxOS::system::CPU::find_cores () const
Support for x2apic
Member MaxOS::system::syscall_func_t )(syscall_args_t *args)
Could use a class based response but a single class might want multiple handlers e.g. fs
Class MaxOS::system::SyscallManager
Very c style, should be made class based that automatically registers
Class MaxOS::tests::TestRunner
Revisit when cbf
Struct multiboot_tag_framebuffer
should use this to setup graphix context pallet?
File syscalls.h
'<system/syscalls.h>' Rename / make clear that this references the system lib