replace nob with ms' build, move disk creation to build.bat, major comment cleanup, remove old and stupid tests, overhaul interrupt management with per-CPU vector allocation, affinity migration and safe teardown, add proper IOAPIC routing and PCI MSI/MSI-X/INTx support, migrate drivers to the new interrupt API, integrate ACPICA with a proper OS services layer, move ACPI firmware events, power button handling and S5 shutdown into acpi.sys, add parallel driver startup and atomic publication, replace PnP arrays with dynamic lists, redesign service startup again to be asynchronous, add delayed startup mode for services, allow omitting keys in services.ini, fix acpi ec deferred work handling, fix kernel threads having garbage exit code.

This commit is contained in:
maksw committed 2026-10-28 15:18:43 +01:00
1 parent d36f19509c
commit 36eef8f58d
696 files changed
+147281 -7530

No files matched your search

+1
View File
@@ -0,0 +1 @@
DIRS=ntfs3g
+3 -5
View File
@@ -1571,7 +1571,8 @@ static void NtfsUnmountPartition(const IO_PARTITION_INFO* partition, IO_PARTITIO
uint32_t mountedCount = gMountedCount;
KeReleaseMutex(&gNtfsMountMutex);
(void)IoRemoveVolume(volume, IoVolumeBackingRemoved);
(void)IoRemoveVolume(volume, change == IoPartitionSurpriseRemoved
? IoVolumeBackingRemoved : IoVolumeUnmounted);
IoReleaseVolume(volume); // Drop the active mount-list reference.
DbgPrint("NTFS: disk=%u lba=%llu %s; unmounted volume=%u; total=%u\n",
partition->DiskIndex, (unsigned long long)partition->StartLba,
@@ -1600,7 +1601,6 @@ static void NtfsPartitionChange(const IO_PARTITION_INFO* partition,
// Initializes NTFS and subscribes to the authoritative kernel partition stream.
static KSTATUS DriverInitialize(NTL_MODULE* module) {
(void)module;
DbgPrint("NTFS: Init\n");
LIST_INIT(&gNtfsMounts);
@@ -1613,9 +1613,7 @@ static KSTATUS DriverInitialize(NTL_MODULE* module) {
return status;
}
if (!gMountedCount)
DbgPrint("NTFS: no mountable NTFS partitions found; driver resident for partition changes.\n");
DbgPrint("NTFS: Init complete; mounted %u volume(s).\n", gMountedCount);
DbgPrint("fs: ntfs volumes=%u\n", gMountedCount);
return NTLSTATUS_SUCCESS;
}
+1
View File
@@ -0,0 +1 @@
!include $(BASEDIR)\makefile.def
+3 -3
View File
@@ -1114,7 +1114,8 @@ static void Ntfs3gUnmountPartition(const IO_PARTITION_INFO* partition, IO_PARTIT
uint32_t count = gNtfs3gMountedCount;
KeReleaseMutex(&gNtfs3gMountMutex);
(void)IoRemoveVolume(ioVolume, IoVolumeBackingRemoved);
(void)IoRemoveVolume(ioVolume, change == IoPartitionSurpriseRemoved
? IoVolumeBackingRemoved : IoVolumeUnmounted);
IoReleaseVolume(ioVolume);
DbgPrint("NTFS3G: disk=%u lba=%llu %s; unmounted volume=%u; total=%u\n",
partition->DiskIndex, (unsigned long long)partition->StartLba,
@@ -1140,14 +1141,13 @@ static void Ntfs3gPartitionChange(const IO_PARTITION_INFO* partition,
static KSTATUS DriverInitialize(NTL_MODULE* module) {
(void)module;
DbgPrint("NTFS3G: Init (libntfs-3g replacement driver)\n");
Ntfs3gListInit(&gNtfs3gMounts);
gNtfs3gMountedCount = 0;
Ntfs3gEnsureMutexes();
KSTATUS status = IoRegisterPartitionChangeCallback(Ntfs3gPartitionChange, (void*)0);
if (!KSUCCESS(status))
return status;
DbgPrint("NTFS3G: Init complete; mounted %u volume(s).\n", gNtfs3gMountedCount);
DbgPrint("fs: ntfs3g volumes=%u\n", gNtfs3gMountedCount);
return NTLSTATUS_SUCCESS;
}
+13
View File
@@ -0,0 +1,13 @@
TARGETNAME=ntfs
TARGETPATH=obj
TARGETTYPE=DRIVER
FLAVOR=NTFS
TARGETLIBS="$(BASEDIR)\bin\kernel.lib" "$(BASEDIR)\bin\libc.lib" "$(BASEDIR)\bin\printf.lib"
EXTRA_LFLAGS=/NOENTRY
INCLUDES=$(BASEDIR)\code\drivers\fs\ntfs\ntfs3g\include;$(BASEDIR)\code\drivers\fs\ntfs\ntfs3g\third_party\ntfs-3g\include;$(BASEDIR)\code\drivers\fs\ntfs\ntfs3g\third_party\ntfs-3g\include\ntfs-3g
SOURCES=@/code/drivers/fs/ntfs/ntfs3g/ntfs3g_port.c @/code/drivers/fs/ntfs/ntfs3g/ntfs3g_device.c @/code/drivers/fs/ntfs/ntfs3g/ntfs3g_driver.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/acls.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/attrib.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/attrlist.c \
@/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/bitmap.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/bootsect.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/cache.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/collate.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/compat.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/compress.c \
@/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/debug.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/device.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/dir.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/ea.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/efs.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/index.c \
@/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/inode.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/ioctl.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/lcnalloc.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/logfile.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/logging.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/mft.c \
@/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/misc.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/mst.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/object_id.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/realpath.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/reparse.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/runlist.c \
@/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/security.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/unistr.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/volume.c @/code/drivers/fs/ntfs/ntfs3g/third_party/ntfs-3g/libntfs-3g/xattrs.c