- 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