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

-12
View File
@@ -43,7 +43,6 @@ struct sys_mbox {
static uint64_t (*gLwipQueryTicksUs)(void) = 0;
static uint32_t gRandState = 0x4b4e4554u; // 'KNET'
// Implements the port Set Timer Query operation.
void LwipPortSetTimerQuery(uint64_t (*query_ticks_us)(void)) {
gLwipQueryTicksUs = query_ticks_us;
}
@@ -54,7 +53,6 @@ unsigned int lwip_port_rand(void) {
return gRandState;
}
// Implements the sys init operation.
void sys_init(void) {
}
@@ -81,7 +79,6 @@ u32_t sys_jiffies(void) {
#undef errno
#endif
int errno;
// Implements the errno operation.
int* __cdecl _errno(void) { return &errno; }
err_t sys_sem_new(sys_sem_t* sem, u8_t count) {
@@ -104,7 +101,6 @@ err_t sys_sem_new(sys_sem_t* sem, u8_t count) {
return ERR_OK;
}
// Implements the sys sem signal operation.
void sys_sem_signal(sys_sem_t* sem) {
if (sem && *sem && (*sem)->Sem)
KeSignalSemaphore((*sem)->Sem);
@@ -127,7 +123,6 @@ u32_t sys_arch_sem_wait(sys_sem_t* sem, u32_t timeout) {
: SYS_ARCH_TIMEOUT;
}
// Implements the sys sem free operation.
void sys_sem_free(sys_sem_t* sem) {
if (!sem || !*sem)
return;
@@ -157,19 +152,16 @@ err_t sys_mutex_new(sys_mutex_t* mutex) {
return ERR_OK;
}
// Implements the sys mutex lock operation.
void sys_mutex_lock(sys_mutex_t* mutex) {
if (mutex && *mutex && (*mutex)->Sem)
(void)KeWaitSemaphore((*mutex)->Sem, KE_WAIT_INFINITE);
}
// Implements the sys mutex unlock operation.
void sys_mutex_unlock(sys_mutex_t* mutex) {
if (mutex && *mutex && (*mutex)->Sem)
KeSignalSemaphore((*mutex)->Sem);
}
// Implements the sys mutex free operation.
void sys_mutex_free(sys_mutex_t* mutex) {
if (!mutex || !*mutex)
return;
@@ -179,7 +171,6 @@ void sys_mutex_free(sys_mutex_t* mutex) {
*mutex = 0;
}
// Implements the mbox Try Post operation.
static err_t LwipMboxTryPost(sys_mbox_t* mbox, void* msg) {
if (!mbox || !*mbox || !(*mbox)->Valid)
return ERR_ARG;
@@ -232,7 +223,6 @@ err_t sys_mbox_new(sys_mbox_t* mbox, int size) {
return ERR_OK;
}
// Implements the sys mbox post operation.
void sys_mbox_post(sys_mbox_t* mbox, void* msg) {
// lwIP promises this is not called from ISR context.
while (LwipMboxTryPost(mbox, msg) != ERR_OK)
@@ -247,7 +237,6 @@ err_t sys_mbox_trypost_fromisr(sys_mbox_t* mbox, void* msg) {
return LwipMboxTryPost(mbox, msg);
}
// Implements the mbox Pop After Item operation.
static u32_t LwipMboxPopAfterItem(sys_mbox_t* mbox, void** msg, u32_t waited) {
struct sys_mbox* m = *mbox;
uintptr_t flags = KeAcquireSpinlock(&m->Lock);
@@ -296,7 +285,6 @@ u32_t sys_arch_mbox_tryfetch(sys_mbox_t* mbox, void** msg) {
return LwipMboxPopAfterItem(mbox, msg, 0);
}
// Implements the sys mbox free operation.
void sys_mbox_free(sys_mbox_t* mbox) {
if (!mbox || !*mbox)
return;