summaryrefslogtreecommitdiff
path: root/src/kernel
AgeCommit message (Collapse)Author
2018-01-05some preliminary work on an UDP netconsoleAndreas Baumann
2017-10-29some docu fixesAndreas Baumann
2017-08-13some work on IPv4Andreas Baumann
2017-08-13calculating correct size of an ARP reply packetAndreas Baumann
2017-08-10renamed network write to network sendAndreas Baumann
2017-08-10some renamed in ethernet/rtl8139Andreas Baumann
don't try tp play with the ethernet CRCs, they belong to layer 2 OSI, the firmware of the network card rtl8139: computing packet size correctly (sizeof uint32_t of the CRC was part of the payload len)
2017-08-06some cleanup in ethernet constantsAndreas Baumann
sending back an ARP packet rtl8139: started to implement write (work in progress)
2017-08-02small renames in kernel.cAndreas Baumann
2017-08-02added an IPv4 module, currently containg an address to string functionAndreas Baumann
started to add ARP packet definition, reading and printing ARP request now some renames in networking layer
2017-08-02introduced a network library, added ethernet structure, movedAndreas Baumann
generic stuff out of the network driver, kernel now sees ARP messages and prints src and dst MAC addresses
2017-08-01freeing network data in handler and printing CRC in rtl8139Andreas Baumann
2017-08-01correctly receiving data in the rtl8139 driver and passing it to the networkAndreas Baumann
handler, in Qemu user network we see complete ARP requests now (sent by Qemu itself presumably to update it's 'router' table (an external telnet localhost 8080 is needed to trigger that)
2017-08-01we can receive network events, but the receive buffer remains emptyAndreas Baumann
this is because we must enable DMA transfering on the PCI bus (bus master enable)
2017-08-01memory_manager_allocate takes an alignment parameter nowAndreas Baumann
added C11 aligned_alloc to stdlib
2017-07-22small include fix in kernel.cAndreas Baumann
2017-07-22separated video driver in a virtual video driver and a specificAndreas Baumann
VGA video driver
2017-07-22moved color handling to video driver from generic VGA driverAndreas Baumann
2017-07-21changed video mode management, moved to video driver,Andreas Baumann
the VGA driver registers his specific mode data with the video driver kernel function now use virtual functions of the video driver
2017-07-20started to abstract video driversAndreas Baumann
2017-07-20added a virtual keyboard driver interface, made the PS/2 keyboard a ↵Andreas Baumann
specialization of it
2017-07-20kernel_panic while shutting down does not result in endless loops anymoreAndreas Baumann
2017-07-18added a virtual mouse driver interface, made the PS/2 mouse a specialization ↵Andreas Baumann
of it
2017-07-16move longjmp for kernel_panicAndreas Baumann
2017-07-16introduced classes of driver types (graphics, mouse, keyboard, network, etc.)Andreas Baumann
removed direct vga_init from kernel.c, using pci for this now, get the driver of type graphics from driver_manager
2017-07-16moved registering of mouse/keyboard interrupts into the driver activation ↵Andreas Baumann
instead of having them directly in kernel.c also more standardization of the driver init functions (mouse set_resolution instead of constructor parameters res_x and res_y)
2017-07-15started to make driver construtors similar (keyboard, mouse)Andreas Baumann
passing context around to pci scanning function for driver initialization
2017-07-15reworked driver init and vtable, taking the interrupt manager and the contextAndreas Baumann
as parameters when creating a driver
2017-07-15same for the graphical VGA driverAndreas Baumann
2017-07-15mouse and keyboard are now allocated driver pointersAndreas Baumann
2017-07-15moved keyboard driver into the global kernel context (away from the stack)Andreas Baumann
2017-07-14added stats functions to memory manager, don't use internal membersAndreas Baumann
added simple chunk-based allocation/deallocation strategy (leads to framgentation)
2017-07-14some linkage tweaking, the kernel is not linked against libssp (whichAndreas Baumann
is using linux/glibc), we provide our own SSP guards leading to kernel_panic (for now). per default build the kernel with ld (as we need precise control how we link it) the libc tests are per default linked with the same compiler as provided with $(CC) using #include_next of gcc/clang to include the real stdint.h header file in stdint.h stub
2017-07-14removed stddef.h and limits.h (come with the compiler header files)Andreas Baumann
added a stub stdint.h (only sometimes comes with the compiler) added a guide on cross compiling adapted to cross compilation, for now tcc works
2017-07-13forgot to add test_malloc.cAndreas Baumann
remove buffer memory functions again (can be done with a simple cast in the caller)
2017-07-13added a simple test for malloc/freeAndreas Baumann
added a memorymanager initilializer which works on a buffer instead on an offset (thus we can but the heap area also onto the stack for testing) added a kernel_stub module to test modules using kernel_panic (for now, maybe have a callback later)
2017-07-13separated C library implementations with an OS_ABAOS define (for now),Andreas Baumann
we cannot test stdio and memory management in the hosted environment yet this way
2017-07-12removed test tasksAndreas Baumann
2017-07-10VGA Z-buffer is now dynamically allocated and freedAndreas Baumann
memory management can reuse the last pointer malloced if freed again
2017-07-09fixed the vga_refresh bug. the problem is under optimization theAndreas Baumann
code gets so fast that we get races in the task refershing the VGA screen. For now we fix also high CPU usage in idle tasks with a 'kernel_halt' (well, later a yield or a more clever task scheduler should help). This is a hacky solution for now..
2017-07-08added dedicated kernel entry to avoid address reordering under compiler ↵Andreas Baumann
optimization affect the entry poin 0x8800 of kernel_main (now kernel_entry)
2017-07-05removed unneded volatile for text VIDEO_MEMORY (we should add the reference ↵Andreas Baumann
to "volatile is always wrong"
2017-07-05removed superfluous context in vga driver (was not used)Andreas Baumann
added dummy methods and driver_init for anonymous driver initialization
2017-07-05tried to fix libc tests, currently they draw in too many dependenciesAndreas Baumann
and don't link. We have to separate libc better from the rest of the kernel code (kernel_panic, libc library initializers)
2017-07-05'mem' command shows memory usage of kernel heap nowAndreas Baumann
implemented a malloc/free and memory manager (simplest possible implementation, just allocating linearly and never freeing)
2017-07-05fixed compilation errors due to unused variablesAndreas Baumann
2017-07-05some kernel code cleanupAndreas Baumann
renamed 'proc' command to 'task' and make it show number of tasks and context switches
2017-07-05fixed graphical screen refresh (a refreshScreen task)Andreas Baumann
cleaned up code after interrupt_enable in main thread everything works again
2017-07-04got scheduling of task A and B working (now graphics output and termination ↵Andreas Baumann
is broken)
2017-07-02started to add task schedulingAndreas Baumann
2017-07-02added ESC key in PS/2 keyboard driverAndreas Baumann
allow pressing ESC in graphics mode to return to text mode