Adds a byte to the process struct, but avoids GCC-specific extensions of
using a single byte for a bitmask. May or may not have any effect
anywhere, but will make ./analyze happier.
It now takes sizes in cells and calculates the correct window size.
Thus, \033[3000;127;45z should set the terminal to the "standard" size
available in 1024x768 full-screen mode, and which is specified in the
terminfo file provide.
* Speed improvements
* Crash fixers
* Significant overhaul to escape handling based on extensive use of the
new serial console and a remote connection to a Linux box.
* Updated included terminfo file to accurately reflect terminal
behavior.
Some fun facts:
* vim runs great on a remote console (though the serial line slows a lot
of things down, it still runs rather smoothly)
* going to fix GNU screen, maybe in next commit, dunno
* tested with htop, less, and a bunch of other stuff
and possibly other environments - fixes the long-standing issue with
keyboard/mouse getting disabled sometimes on bootup, especially if you
tried to interact with the qemu window during the boot process
* fix some terminal bugs (some, not all)
* add a serial device to the VFS
* fix up serial so it works better
* add a serial-console application
* fix a bug in some other stuff relating to allocations
* change size of the terminal described by toaru.terminfo
* adds a new system call
* Reenables building of libstdc++
* Enables building of g++
* WARNING: The static binary loader does NOT support static
initializer functions! You must run them yourself (see
userspace/test-cpp.cpp for an example that initializes the standard
streams in order to use cout) until this is fixed.
* C++ stuff is slow to load, try to manually strip, it'll speed things
up a bit.