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