Commit Graph

374 Commits

Author SHA1 Message Date
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
d10c89544c kexts: fbcon: implement VGA text mode tty driver 2023-06-11 09:24:22 +01:00
abe4af093e tty: implement read/write support 2023-06-11 09:23:57 +01:00
557e1dda30 kexts: pci: remove extern qualifier 2023-06-10 21:42:05 +01:00
4cd9ebcb4f kexts: add generic vga/fb tty driver 2023-06-10 21:41:46 +01:00
d09ad5838e kernel: implement tty driver system 2023-06-10 21:41:07 +01:00
e10f11af88 kexts: add driver for Bochs/QEMU display controller 2023-06-10 13:24:36 +01:00
28dab53147 kexts: pci: create generic devices for all pci devices found during scan 2023-06-10 13:23:57 +01:00
c5edce612d dev: implement generic devices
generic devices don't have a type (char, block, etc) and are created
by bus drivers to represent the device until a suitable driver is found.

generic devices are registered by the bus driver. once a more suitable
driver is found, that driver will re-register the device under itself.
2023-06-10 13:21:42 +01:00
4a2c5de5b6 kexts: pci: implement device enumeration 2023-06-09 21:27:09 +01:00
9bea0a8081 kexts: acpi: add DEFINE_KEXT 2023-06-09 21:25:53 +01:00
20f77893cf dev: implement bus device enumeration 2023-06-09 21:24:51 +01:00
27387aa080 x86_64: move ACPI driver to kext 2023-06-09 19:31:30 +01:00
f6064eea53 tools: kexttool: include directory support; pre-processor defines for internal kexts 2023-06-09 19:30:57 +01:00