Commit Graph

387 Commits

Author SHA1 Message Date
53e756eca0 kernel: add boot argument parsing 2023-12-27 17:34:59 +00:00
b8934d220c vm: increase the number of sparse memory sectors that can be created 2023-12-24 09:43:57 +00:00
8803c23f08 vm: improve memory usage under sparse with a high reserved memory ratio
previously, sparse would attempt to create a smaller number of larger sectors on systems with lots of reserved memory, often causing an out-of-memory condition. the reserved memory ratio calculation now compares reserved memory to free memory, rather than to the address of the last byte in physical memory. this improved heuristic means sparse is now better at choosing an appropriate sector size, allowing sparse to operate on systems with high amounts of reserved memory.
2023-12-24 09:39:28 +00:00
8b99158d66 vm: fix overflow in memblock do_alloc when allocating large aligned blocks
allocating a large power-of-2 block with memblock may cause the base pointer of a region to exceed the limit pointer after it has been aligned during the free region scan in do_alloc().
2023-12-24 09:37:52 +00:00
63b69d8d85 util: fix absdiff64() always over/underflowing 2023-12-24 09:36:41 +00:00
1cbab5f2f4 vm: optimise vm_zone_init by only making blocks from free regions during boot 2023-12-24 09:35:50 +00:00
67c0b6eba9 tools: amldecode: skip creation of unnamed objects 2023-07-27 19:06:06 +01:00
d66f0df2c2 tools: amldecode: add parsing support for more AML opcodes 2023-07-22 17:57:20 +01:00
d08612f7db tools: amldecode: add test files extracted from Lenovo ThinkStation machine 2023-07-22 17:56:47 +01:00
82dd8c7846 tools: amldecode: fix read_pkg_length reading multibyte lengths in the wrong order 2023-07-20 19:47:08 +01:00
af15eaa75b tools: amldecode: store table revision in parser 2023-07-20 19:46:00 +01:00
9a2ac25343 x86_64: don't call early_vgacon_init() if fbcon kext is not compiled in 2023-07-19 19:02:00 +01:00
ac15f18782 build: remove --no-print-directory from make call when building userspace tools 2023-07-19 19:01:02 +01:00
f8c1a52259 tools: add tool to decode AML files and build an ACPI namespace 2023-07-19 19:00:27 +01:00
42c6cfb697 kexts: ahci: remove generic log messages 2023-07-19 18:59:42 +01:00
b4ef018c5f build: support multiple source files and nested directories for userspace tools 2023-07-19 18:59:11 +01:00
e9e73bc027 dev: removed internal spinlock from bcache
bcaches must now have an explicit external lock to protect them from
concurrent access (i.e. a lock belonging to their parent block device)
2023-07-11 21:28:02 +01:00
c0f380ddca kernel: lock block device before reading from it 2023-07-11 21:26:22 +01:00
c696bdf122 kexts: ahci: implement read support for ATA devices 2023-07-09 22:02:30 +01:00
3233169f25 dev: implement reading from block devices
reading from block devices is done using the block cache (bcache).
This cache stores sectors from a block device in pages of memory
marked as 'cached', which will allow them to be reclaimed when
memory pressure is high (TODO).

while block device drivers implement callbacks allowing reading/writing
at block-granularity, the device subsystem uses the block cache to
implement reading/writing at byte-granularity in a driver-agnostic way.

block drivers can disable the block cache for their devices, but this
will require that any clients communicate with the devices at
block-granularity.

also added an offset parameter to device and object read/write functions/callbacks.
2023-07-09 21:58:40 +01:00
53440653f2 kernel: remove static qualifier from functions generated by btree convenience macros 2023-07-09 21:57:04 +01:00
cefbd3e8d6 kexts: ahci: refactor driver 2023-07-09 09:07:15 +01:00
7d51bcb7b8 kexts: pci: add function to get pci-specific device data 2023-07-09 09:07:02 +01:00
49f50859b5 dev: block device IO callbacks now use iovec 2023-07-09 09:06:36 +01:00
2ac75cd541 kexts: ahci: implement identification of ATAPI devices 2023-07-08 22:15:22 +01:00
8463423c10 kernel: add endian conversion functions 2023-07-08 22:14:31 +01:00
dd6e49e8a6 kernel: tweak thresholds for data size->string conversion 2023-07-08 22:13:49 +01:00
fa41e50f56 kexts: add AHCI block driver 2023-07-08 15:57:16 +01:00
2ea509c4dc build: add test AHCI drives to VM 2023-07-08 15:56:20 +01:00
db992a0994 kernel: add status codes for device IO 2023-07-08 15:55:56 +01:00
d9b9c0d4e7 dev: implement block device registration 2023-07-08 15:55:43 +01:00
ce40a4f57d kexts: fbcon: use ttyFBX name format for tty devices 2023-07-08 15:54:29 +01:00
71dbdf21a2 dev: allow devices to specify human-readable model names 2023-07-08 15:53:59 +01:00
d96c549f17 vm: allow pages to be mapped as no-cache 2023-07-08 15:53:06 +01:00
8ffbacb0cd dev: don't lock bus list when enumerating all buses 2023-07-08 15:52:31 +01:00
9d2644ffa7 kexts: pci: score driver matches, allow fallback class drivers 2023-07-08 15:51:12 +01:00
65db7cfbda kernel: add filesystem model definitions 2023-06-25 11:03:44 +01:00
31a4e00fdc tty: retain reference to foreground tty and input devices 2023-06-14 21:45:05 +01:00
1c20efc36e dev: add function to ref/deref device objects 2023-06-14 21:44:47 +01:00
2656696757 tty: reading input from a tty is now handled by the line discipline 2023-06-14 17:38:11 +01:00
16d0a398b3 kexts: ps2kbd: send events to devices outside of interrupt context 2023-06-14 17:37:11 +01:00
4a1c6cae69 sched: add support for scheduling functions to be executed later 2023-06-14 17:36:45 +01:00
cdb9fef36c tty: remove tty event queues 2023-06-11 19:00:55 +01:00
a7c28e983c kernel: tty: implement tty input using line disciplines 2023-06-11 16:47:33 +01:00
7308fd98fb dev: implement input event hooks 2023-06-11 16:46:58 +01:00
3cc72f1f24 kernel: tty: support printing output from printk() 2023-06-11 14:55:47 +01:00
0245d2254b kernel: tty: support for printing newlines 2023-06-11 14:54:39 +01:00
aa62fa71b0 kexts: fbcon: add 8x16 bitmap font 2023-06-11 14:53:53 +01:00
a75c620dde kexts: fbcon: support scrolling multiple lines under vgacon 2023-06-11 14:53:22 +01:00
1adb635303 kexts: qemufb: update fb_baseptr in qemu_set_varinfo 2023-06-11 12:59:33 +01:00