Commit Graph

295 Commits

Author SHA1 Message Date
Jonas 'Sortie' Termansen c518a37bef Fixed compiler warning in PageProtect function family. 2012-08-04 18:35:23 +02:00
Jonas 'Sortie' Termansen 69c23aed56 Thread secured the sound driver. 2012-08-04 18:35:23 +02:00
Jonas 'Sortie' Termansen 5f93e157d5 Thread secured refcount class. 2012-08-04 18:35:23 +02:00
Jonas 'Sortie' Termansen 61dbb4a2ec Better abstraction of setting kernel stack. 2012-08-04 18:35:23 +02:00
Jonas 'Sortie' Termansen 950610e1eb Added a kernel worker thread for use when the kernel goes multithreaded. 2012-08-04 18:35:23 +02:00
Jonas 'Sortie' Termansen ee73aa7783 Added a library of functions to simulate atomic operations on memory. 2012-08-04 18:35:23 +02:00
Jonas 'Sortie' Termansen dafe1c499d Thread secured pipe class. 2012-08-04 18:35:23 +02:00
Jonas 'Sortie' Termansen 66d7234ab1 Thread secured logterminal class and implemented VEOF. 2012-08-04 18:35:23 +02:00
Jonas 'Sortie' Termansen bf07674d7a Thread secured the keyboard driver. 2012-08-04 18:35:23 +02:00
Jonas 'Sortie' Termansen af015491db sortix/io.cpp is now ready for new system call semantics. 2012-08-04 18:35:23 +02:00
Jonas 'Sortie' Termansen 4810ccae39 Added warning in case the laws of logic changes. 2012-08-04 18:35:23 +02:00
Jonas 'Sortie' Termansen 2e3843ffce Fixed incorrect x86-family protection flags. 2012-08-04 18:35:23 +02:00
Jonas 'Sortie' Termansen 49ad293d1d Thread secured the physical page allocator. 2012-08-04 18:35:23 +02:00
Jonas 'Sortie' Termansen 459a1b2b3f Thread secured initfs. 2012-08-04 18:35:23 +02:00
Jonas 'Sortie' Termansen f00c8b3d63 Thread secured the kernel device class. 2012-08-04 18:35:23 +02:00
Jonas 'Sortie' Termansen 38349da082 Thread secured the COM driver. 2012-08-04 18:35:22 +02:00
Jonas 'Sortie' Termansen f3f33e22e7 Thread secured ATA driver. 2012-08-04 18:35:22 +02:00
Jonas 'Sortie' Termansen eb4f179330 Added DEBUG_KERNEL option to kernel makefile. 2012-08-04 18:35:22 +02:00
Jonas 'Sortie' Termansen 199fec6674 Hack: ReadParamString supports "STOP" because of stdarg bug. 2012-08-04 18:35:22 +02:00
Jonas 'Sortie' Termansen 14d709c136 Added support for gcc 4.7.1. 2012-08-04 18:33:47 +02:00
Jonas 'Sortie' Termansen 78300931ba Workarounds for older gcc releases such that endian.h works. 2012-08-02 16:24:51 +02:00
Jonas 'Sortie' Termansen 86f8662a4e The VGA font is now available as /dev/vga. 2012-08-01 13:07:47 +02:00
Jonas 'Sortie' Termansen f3532081aa Added a filesystem utility class for providing a fixed buffer. 2012-08-01 13:07:31 +02:00
Jonas 'Sortie' Termansen 8dc5955f5e Wrote a driver for the Bochs VBE Extensions (BGA). 2012-07-30 19:03:48 +02:00
Jonas 'Sortie' Termansen cb5a242dfc Added a text buffer that works with graphical linear frame buffers. 2012-07-30 19:02:05 +02:00
Jonas 'Sortie' Termansen 78f0c6c094 The video framework is now exposed as /dev/video.
This provides easy user-space access to the framebuffer.
2012-07-30 19:00:24 +02:00
Jonas 'Sortie' Termansen 1ce55af846 Created framework for video drivers.
This supports dynamic loading and unloading of graphics drivers, mode
switching and detection and flexible kernel access to the framebuffer.
2012-07-30 19:00:24 +02:00
Jonas 'Sortie' Termansen d27a2bdcbf Better detection of panicing while panicing. 2012-07-30 18:59:13 +02:00
Jonas 'Sortie' Termansen 1041823d42 Fixed VGA text buffer rendering non-ascii text incorrectly. 2012-07-30 18:56:47 +02:00
Jonas 'Sortie' Termansen 3b0f165c4f Fixed bad declaration of MapPAT in x86-family/memorymanagement.h. 2012-07-30 18:56:02 +02:00
Jonas 'Sortie' Termansen 19b5451f3b Refactored the PCI code to become a library of utility functions. 2012-07-29 23:45:54 +02:00
Jonas 'Sortie' Termansen 5f6ca5e729 Added a kernel endian.h header for easy conversion. 2012-07-29 23:45:54 +02:00
Jonas 'Sortie' Termansen f390418515 Preallocated kernel address space for video memory. 2012-07-24 20:08:51 +02:00
Jonas 'Sortie' Termansen 494636b8eb Added some filesystem utility classes. 2012-07-24 19:56:33 +02:00
Jonas 'Sortie' Termansen 143120d160 Added tcgetwinsize(2) for determining terminal resolution.
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.
2012-07-24 18:43:34 +02:00
Jonas 'Sortie' Termansen f5c4b64aff The console can now be rendered to any text buffer.
The console renderer now renders to a text buffer, which can be implemented
on any device, whether it's the VGA text buffer or a bitmap graphics device
with font rendering. This replaces the older code that could only render to
a VGA framebuffer and where the input parsing was tightly coupled with the
device rendering phase.
2012-07-24 14:48:14 +02:00
Jonas 'Sortie' Termansen 8c5ab54c9b Updated refcount.cpp to a newer coding convention. 2012-07-23 00:05:31 +02:00
Jonas 'Sortie' Termansen 3907e14cb8 Updated vgaterminal.cpp to newer coding conventions. 2012-07-23 00:05:31 +02:00
Jonas 'Sortie' Termansen d75a7145ef Updated vga code to newer coding conventions. 2012-07-23 00:05:31 +02:00
Jonas 'Sortie' Termansen b2814db927 Added support for getting a copy of the VGA Font.
This will be useful for providing a text-mode like environment (console)
after having switched to graphical mode where the system needs a font.
2012-07-22 15:51:38 +02:00
Jonas 'Sortie' Termansen 476ba278da Improved VGA scroll performance using memcpy(3). 2012-07-17 16:23:00 +02:00
Jonas 'Sortie' Termansen ebc0b064c3 Added a function to get the current address space pointer. 2012-07-06 17:18:07 +02:00
Jonas 'Sortie' Termansen d59c0cb3ed getpagesize(2) now call Sortix::Page::Size(). 2012-07-06 17:18:07 +02:00
Jonas 'Sortie' Termansen 22990b77b8 Refactored the internal kernel memory management API.
It is now permission-oriented, not just user/kernel oriented.

Added <sys/mman.h> with nice PROT_{READ,WRITE,EXEC,FORK} constants.
2012-07-06 17:18:07 +02:00
Jonas 'Sortie' Termansen ec5fa92761 Programmers can now redirect what the errno macro refers to. 2012-07-06 17:18:06 +02:00
Jonas 'Sortie' Termansen e7baf6a4b0 Updated the kthread compatibility layer with signal support. 2012-07-06 17:17:45 +02:00
Jonas 'Sortie' Termansen c39473157a Implemented a new initrd format with better inode support.
This enables useful features such as directories, CRC32 checksums, and other
useful features. The initrdfs in the kernel is now hooked up against the new
API, although the kernel's current limited FS support is a problem for now.
To work around that, directories are not supported at runtime, although the
internal API understands them wonderfully. This will be fixed when the
kernel gets a real VFS.
2012-07-02 17:40:52 +02:00
Jonas 'Sortie' Termansen 2046482e77 Added support for MSRs, PAT and MTRRs.
This provides control over the caching of memory, which makes write-combined
IO possible. Graphics drivers can use this to transfer data at a much higher
rate to the video memory.

The implementation is a bit hacky but it'll do for now. It provides enough
support for the experimental VBE driver to work on the real computers I
tested it on, even if the BIOS uses screwed up default MTRRs.

The virtual memory layer now automatically uses the PAT feature if available
but in a backwards compatible manner and otherwise just tries to approximate
PAT features if they are asked for.
2012-07-01 00:55:36 +02:00
Jonas 'Sortie' Termansen b650c9a8f0 Added a O_ACCMODE flag for GNU compatibility. 2012-05-28 22:52:11 +02:00
Jonas 'Sortie' Termansen 00869bcdc1 The PIC can now be deprogrammed and reprogrammed. 2012-05-26 14:00:24 +02:00