replace ad hoc driver loading with a proper driver manager, new DDK, new PnP manager with device matching, asynchronous startup, resource ownership and removal, add shared PCI capability helpers, replace typed, rigid services with a proper service manager, implement proper system shutdown and restart, shutting down unloads drivers and shuts down services, add simple power button, remove heavyweight boot self-tests and SMP stress runs, add monotonic timestamps to kernel debug output, fruitless USB and PS/2 fixes, make test builds opt in.
This commit is contained in:
1 parent
c0ad63c27f
commit
d36f19509c
160 files changed
+6563
-7366
No files matched your search
@@ -5,18 +5,16 @@
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <ntlite/syscall.h>
|
||||
#include <ntlite/service_control.h>
|
||||
|
||||
#define INIT_SERVICES_PATH "system/services.ini"
|
||||
#define INIT_SERVICES_MAX_FILE_BYTES (64u * 1024u)
|
||||
#define INIT_SERVICE_MAX_COUNT 32u
|
||||
#define INIT_SERVICE_ID_MAX 31u
|
||||
#define INIT_SERVICE_DEPENDENCY_MAX 8u
|
||||
|
||||
typedef enum INIT_SERVICE_TYPE {
|
||||
InitServiceTypeResource = 0,
|
||||
InitServiceTypeDwm,
|
||||
InitServiceTypeGeneric,
|
||||
} INIT_SERVICE_TYPE;
|
||||
#define INIT_SERVICE_GRANT_MAX 8u
|
||||
#define INIT_SERVICE_GRANT_NAME_MAX SYS_STARTUP_CAPABILITY_NAME_MAX
|
||||
#define INIT_SERVICE_EXPORT_MAX 8u
|
||||
|
||||
typedef enum INIT_SERVICE_START_POLICY {
|
||||
InitServiceStartAuto = 0,
|
||||
@@ -31,7 +29,6 @@ typedef enum INIT_SERVICE_RESTART_POLICY {
|
||||
typedef struct INIT_SERVICE_DESCRIPTOR {
|
||||
char Id[INIT_SERVICE_ID_MAX + 1u];
|
||||
char ImagePath[SYS_PATH_MAX];
|
||||
INIT_SERVICE_TYPE Type;
|
||||
INIT_SERVICE_START_POLICY StartPolicy;
|
||||
bool Critical;
|
||||
INIT_SERVICE_RESTART_POLICY RestartPolicy;
|
||||
@@ -39,6 +36,10 @@ typedef struct INIT_SERVICE_DESCRIPTOR {
|
||||
uint32_t StopTimeoutMilliseconds;
|
||||
uint32_t DependencyCount;
|
||||
uint16_t Dependencies[INIT_SERVICE_DEPENDENCY_MAX];
|
||||
uint32_t GrantCount;
|
||||
char Grants[INIT_SERVICE_GRANT_MAX][INIT_SERVICE_GRANT_NAME_MAX + 1u];
|
||||
uint32_t ExportCount;
|
||||
char Exports[INIT_SERVICE_EXPORT_MAX][NTL_SERVICE_EXPORT_NAME_MAX + 1u];
|
||||
} INIT_SERVICE_DESCRIPTOR;
|
||||
|
||||
typedef struct INIT_SERVICE_CONFIG {
|
||||
@@ -46,8 +47,6 @@ typedef struct INIT_SERVICE_CONFIG {
|
||||
uint16_t StartupOrder[INIT_SERVICE_MAX_COUNT];
|
||||
uint32_t ServiceCount;
|
||||
uint32_t StartupCount;
|
||||
uint16_t ResourceServiceIndex;
|
||||
uint16_t DwmServiceIndex;
|
||||
} INIT_SERVICE_CONFIG;
|
||||
|
||||
// Loads, strictly parses, and validates services.ini beneath the bootstrap system volume.
|
||||
|
||||
Reference in new issue
Block a user