1. 08 Sep, 2012 1 commit
  2. 24 Jul, 2012 1 commit
    • Jonas Termansen's avatar
      Added tcgetwinsize(2) for determining terminal resolution. · 143120d1
      Jonas Termansen authored
      Unfortunately this area is not standardized by POSIX. Linux uses an ioctl
      which is not that bad, but I'd like to have a designated function. I'm not
      sure if this facility is powerful enough and whether it should be improved.
      Also note that I use a struct winsize as on Linux, but I use size_ts instead
      for the heck of it. Perhaps I should use another name for the struct.
      143120d1
  3. 07 Mar, 2012 1 commit
  4. 02 Mar, 2012 1 commit
  5. 12 Feb, 2012 1 commit
    • Jonas Termansen's avatar
      Refactored the libmaxsi/ directory. · fec176fa
      Jonas Termansen authored
      C and C++ files are now kept together and so are the mxmpp declarations.
      
      Header files are now stored in include/ and mxmpp'd into preproc/.
      
      All other code now -I ../libmaxsi/preproc.
      
      And other stuff to make this happen, including refactoring Makefile.
      fec176fa
  6. 04 Dec, 2011 1 commit
  7. 03 Nov, 2011 1 commit
  8. 01 Nov, 2011 1 commit
    • Jonas Termansen's avatar
      Implemented the fork() system call and what it needed to work properly. · 2afe9d1f
      Jonas Termansen authored
      This commit got completely out of control.
      
      Added the fork(), getpid(), getppid(), sleep(), usleep() system calls, and
      aliases in the Maxsi:: namespace.
      
      Fixed a bug where zero-byte allocation would fail.
      
      Worked on the DescriptorTable class which now works and can fork.
      
      Got rid of some massive print-registers statements and replaced them with
      the portable InterruptRegisters::LogRegisters() function.
      
      Removed the SysExecuteOld function and replaced it with Process::Execute().
      
      Rewrote the boot sequence in kernel.cpp such that it now loads the system
      idle process 'idle' as PID 0, and the initization process 'init' as PID 1.
      
      Rewrote the SIGINT hack.
      
      Processes now maintain a family-tree structure and keep track of their
      threads. PIDs are now allocated using a simple hack. Virtual memory
      per-process can now be allocated using a simple hack. Processes can now be
      forked. Fixed the Process::Execute function such that it now resets the
      stack pointer to where the stack actually is - not just a magic value.
      Removed the old and ugly Process::_endcodesection hack.
      
      Rewrote the scheduler into a much cleaner and faster version. Debug code is
      now moved to designated functions. The noop kernel-thread has been replaced
      by a simple user-space infinite-loop program 'idle'.
      
      The Thread class has been seperated from the Scheduler except in Scheduler-
      related code. Thread::{Save,Load}Registers has been improved and has been
      moved to $(CPU)/thread.cpp. Threads can now be forked. A new CreateThread
      function creates threads properly and portably.
      
      Added a MicrosecondsSinceBoot() function.
      
      Fixed a crucial bug in MemoryManagement::Fork().
      
      Added an 'idle' user-space program that is a noop infinite loop, which is
      used by the scheduler when there is nothing to do.
      
      Rewrote the 'init' program such that it now forks off a shell, instead of
      becoming the shell.
      
      Added the $$ (current PID) and $PPID (parent PPID) variables to the shell.
      2afe9d1f
  9. 13 Sep, 2011 1 commit
  10. 28 Aug, 2011 2 commits
  11. 05 Aug, 2011 1 commit