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

+11
View File
@@ -6,6 +6,7 @@
#include <stdint.h>
#include <ntlite/syscall.h>
#include <ntlite/service_control.h>
#include <ntlite/security.h>
#define INIT_SERVICES_PATH "system/services.ini"
#define INIT_SERVICES_MAX_FILE_BYTES (64u * 1024u)
@@ -18,24 +19,33 @@
typedef enum INIT_SERVICE_START_POLICY {
InitServiceStartAuto = 0,
InitServiceStartDelayed,
InitServiceStartDisabled,
} INIT_SERVICE_START_POLICY;
typedef enum INIT_SERVICE_RESTART_POLICY {
InitServiceRestartNever = 0,
InitServiceRestartOnFailure,
InitServiceRestartAlways,
} INIT_SERVICE_RESTART_POLICY;
typedef struct INIT_SERVICE_DESCRIPTOR {
char Id[INIT_SERVICE_ID_MAX + 1u];
char Name[64];
char ImagePath[SYS_PATH_MAX];
INIT_SERVICE_START_POLICY StartPolicy;
bool Critical;
INIT_SERVICE_RESTART_POLICY RestartPolicy;
uint32_t ReadyTimeoutMilliseconds;
uint32_t StopTimeoutMilliseconds;
uint32_t RestartLimit;
uint32_t RestartWindowMilliseconds;
uint32_t RestartDelayMilliseconds;
SYS_PRIVILEGES Privileges;
uint32_t DependencyCount;
uint16_t Dependencies[INIT_SERVICE_DEPENDENCY_MAX];
uint32_t AfterCount;
uint16_t After[INIT_SERVICE_DEPENDENCY_MAX];
uint32_t GrantCount;
char Grants[INIT_SERVICE_GRANT_MAX][INIT_SERVICE_GRANT_NAME_MAX + 1u];
uint32_t ExportCount;
@@ -43,6 +53,7 @@ typedef struct INIT_SERVICE_DESCRIPTOR {
} INIT_SERVICE_DESCRIPTOR;
typedef struct INIT_SERVICE_CONFIG {
char SessionImage[SYS_PATH_MAX];
INIT_SERVICE_DESCRIPTOR Services[INIT_SERVICE_MAX_COUNT];
uint16_t StartupOrder[INIT_SERVICE_MAX_COUNT];
uint32_t ServiceCount;