summaryrefslogtreecommitdiff
path: root/src/kernel/kernel.c
AgeCommit message (Collapse)Author
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-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-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
2017-07-01do not call methods directly on desktop object, the desktop object couldAndreas Baumann
be derived, so go over the vtable (keyboard and mouse handlers in kernel.c)
2017-07-01replaced some strange access to .base.base with casts of the class to the ↵Andreas Baumann
class needed to access the proper vtable
2017-07-01got rid of superflous vtables in GUI class hierarchyAndreas Baumann
2017-07-01fixed get_focus error in widget (called the wrong parent)Andreas Baumann
the text widget reacts to mouse down and key events and appends text to the output buffer so we have text input in GUI mode
2017-07-01restoring VGA text cursor in the right placeAndreas Baumann
2017-06-30almost got a complete mode switch (vga graphics back to text) workingAndreas Baumann
some cleanup in VGA driver code
2017-06-30text widget has a constant buffer and owns the string to draw nowAndreas Baumann
(passing a const char * from a local stack context is not really a good idea!) added more efficiet draw method for characters in vga driver protected desktop for now against too often redraws (boolean global variable needs_redraw, this is later a soffisticated set-of-areas-to -redraw algorithm)
2017-06-30playing with Z buffering in VGA driverAndreas Baumann
2017-06-30added a third widget (for drawing fonts)Andreas Baumann
fixed drawing races due to mouse interrupts
2017-06-30added a VGA wait for retrace in graphics modeAndreas Baumann
2017-06-30added a window to gui which is draggable by the mouseAndreas Baumann
2017-06-29widget should be in kernel data section and not in local scopes of a stackAndreas Baumann
2017-06-26nothing working in gui!Andreas Baumann
2017-06-25fighting races and corrupted data on clang, funny behaviour on tcc, fine on ↵Andreas Baumann
gcc in desktop draw
2017-06-25small unused variable fixAndreas Baumann
2017-06-25we have a flickering mouse cursor and terrible redrawing of the desktop now :-)Andreas Baumann
removed the font window for now, far too slow!
2017-06-25put the mouse object into the global context so we can adjust theAndreas Baumann
resolution when switching video modes
2017-06-25fixed calculation of coordinates in text widgetAndreas Baumann
2017-06-24.Andreas Baumann
2017-06-24font is shown as a text widget nowAndreas Baumann
fixed setting of vtable in derived classes still some local to screen coordinate calculation problem in text widget
2017-06-24started to implement a widget showing text, the problem currentlyAndreas Baumann
is the inheritance method in draw is not working correctly
2017-06-24minor font printing fixesAndreas Baumann
2017-06-24printing whole ASCII font in VGA graphics modeAndreas Baumann